浏览器不允许跨域AJAX调用。仅允许跨域JSONP请求。
要使用JSONP请求,您必须将
dataType属性更改为
jsonp。但是,这意味着您不能请求XML,而只能请求JSONP。
关于JSONP的一些知识:
该
<script>标签绕过跨域限制。这意味着您可以使用该标签从其他服务器获取数据。该标记不支持所有类型的语言,因此不支持XML。
JSONP本质上是JSON,但是围绕着它的函数调用是这样的:
functionname({"property":"value"})我可以看到您在想:“那个函数名在那里做什么?”
这与JSON完全不同。由于该函数包装在其中,因此您可以使用实际数据!
<script type="text/javascript">var functionname = function(json) { alert(json.property);}</script><script type="text/javascript" src="http://www.domain.com/jsonp"></script>如果您将第二个脚本标签替换为响应内容,则将很有意义:
<script type="text/javascript">var functionname = function(json) { alert(json.property);}functionname({"property":"value"});</script>信不信由你,但是这种微小的差异实际上使我们能够更安全地进行跨域请求。



