AJAX在没有JSONP的情况下调用不同的域

时间:2011-05-08 17:57:51

标签: javascript ajax http cross-browser

有没有办法在不使用JSONP或任何其他库(纯JS解决方案?)的情况下从另一个域通过ajax检索数据?

2 个答案:

答案 0 :(得分:1)

尝试查看CORS,但不是每个浏览器都支持它。

答案 1 :(得分:0)

JSONP不是一个库,它是一种技术。 JSONP本身与jQuery或类似的东西无关或依赖于jQuery,尽管jQuery确实有支持使它变得简单。您可以使用纯DOM / JavaScript轻松完成此操作。

该技术是将脚本标记动态插入到文档中,将源设置为外部服务器。外部服务器应该发回包含在函数中的JSON数据。当然,在加载脚本时会调用该函数。

因此,假设您的主脚本中有一个函数json_parse

插入像

这样的标签
<script src='yourserver.example.com/the_data.php?jsonp=json_parse'></script>

让我们说脚本发送回数据,包含在对你指定的函数的函数调用中,在这种情况下为json_parse。

json_parse({"some":"data","blap":420});

你去了,你从XD服务器访问了JSON数据。注意,因为您正在加载脚本,这仅适用于GET请求。