我提供的Web服务将数据作为JSON对象返回。问题是用Ajax,Ajax无法调用跨域url。是否可以禁用它?
答案 0 :(得分:4)
您无法禁用它,但您可以通过接受JSONP - 请求来解决问题。
答案 1 :(得分:0)
如果您可以控制其他服务器响应的内容,请使用JSONP。 JSONP必须返回符合javascript的脚本。 (var hi = {json = stuff};)
客户端HTML示例:
// This is our function to be called with JSON data
function showPrice(data) {
alert("Symbol: " + data.symbol + ", Price: " + data.price);
}
var url = “ticker.js”; // URL of the external script
// this shows dynamic script insertion
var script = document.createElement('script');
script.setAttribute('src', url);
// load the script
document.getElementsByTagName('head')[0].appendChild(script);
在这种情况下,“ticket.js”网址包含以下内容:
var data = {symbol: 'Hi', price: 91.42};
可能性二是你创建一个代理外部JSON源的本地(php,perl,ruby,无论你使用什么)脚本。