我正在尝试从 javascript 发送 jquery ajax 请求。我正在使用以下代码,但它不起作用。
$j.ajax({
url: 'https://c.na14.visual.force.com/apex/controlApi',
type : 'GET',
dataType: 'jsonp',
success : function(result){
alert('Result is '+result);
},
error : function(jqXHR, textStatus, errorThrown) {
alert('status is '+jqXHR.status);
alert('Error is '+textStatus);
}
});
我的回复是 json 格式。就像
{
"mydata" : "xxxxxxx"
}
当我使用上面的ajax请求时,错误函数被执行。它显示状态为 200,错误为“parsererror”。但是,我的回复是 json 格式(已验证)。所以,我对这个问题很困惑。
谢谢
最佳答案
您要求 jQuery 使用 JSON-P,而不是 JSON。 JSON-P 响应如下所示:
callback({
"mydata" : "xxxxxx"
})
...其中 callback
是请求 URL 上指定的函数名称。更多关于JSON-P here .
如果请求位于 same origin作为发出请求的文档,您可以通过将 dataType
更改为 "json"
来使用 JSON。
如果它位于不同的源,这就是您使用 JSON-P 的原因,您需要修改服务器端以从 URL 的查询字符串中提取函数的名称,然后将函数调用放入您的响应中,如下所示如上所述。
关于javascript - Jquery Ajax 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13817195/