我正在尝试编写一些调用我创建的Web服务的JavaScript。此Web服务是另一个
的一部分function ping() {
$.ajax({
url: "http://myserver/OtherSite/ping?$format=json",
dataType: "jsonp",
type: "GET",
success: ping_Succeeded,
error: ping_Failed
});
}
function ping_Succeeded(result) {
alert("success");
}
function ping_Failed(e1, e2, e3) {
console.log(e1 + "\n" + e2 + "\n" + e3);
}
当我执行此代码时,我在Fiddler中注意到我对Web服务的请求没问题。返回200。我期待的JSON就在那里。但是,在JavaScript控制台中,我看到一条错误消息:“Uncaught SyntaxError:Unexpected Token:”。
在控制台中查看时,我注意到以下内容:“消息:”jQuery18209005181000102311_1352904505837未被调用“。
我不明白我做错了什么。有人可以告诉我我的代码有什么问题吗?
谢谢
答案 0 :(得分:0)
您似乎缺少将JSON包装到回调调用中。
由于dataType:"jsonp"
,jquery会将请求发送到这样的URL:
OtherSite/ping?$format=json&callback=jQuery18204326352379284799_1352906037982&_=1352906037995
所以,你必须从回调中获取一个名字,然后将你的回复包装起来(在服务器上):
jQuery18204326352379284799_1352906037982({ "d":{ "result":"Test 37" } })
或者您可以尝试将dataType:"jsonp"
替换为dataType:"json"