【发布时间】:2011-06-24 14:31:31
【问题描述】:
好的,我在桌面上的 .html 文件中有一个 JQuery AJAX 调用。它调用位于以太网中的 Web 服务器上的 WCF 服务。
好消息是它有效。 Sorta..几乎..但不完全。
AJAX 调用将执行,Fiddler 显示来自网络服务的 JSON 响应。不幸的是,它并没有回到浏览器。 callback=? 在那里,所以我没有收到跨站点脚本错误。 (访问控制等等等等)
如果我使用 Chrome 的开发工具打开它,它会给我以下消息:
Resource interpreted as script but transferred with MIME type application/json
success:callback 没有被调用,error:callback 在 statusText 中返回一个单词:parsererror
我整天都在努力解决这个问题。
function AJAXGet() {
$.ajax({
url: "http://xxxx/yyyyService/yyyyService.svc/GetZZZ?callback=?",
dataType: 'json',
data: JSON.stringify('{"customerID": "1"}'),
contentType: "application/json; charset=utf-8; application/x-javascript",
success: function (data) {
alert(data);
},
complete: function (data) {
alert(data);
},
error: function (xhr) {
alert("AJAXGetError: " + xhr.statusText);
}
});
}
Fiddler 说这是发送的内容:
GET /yyyyService/yyyyService.svc/GetZZZ?callback=jQuery150833801421286173_1297309350515&%22{\%22yyyyID\%22:%20\%221\%22}%22&_=1297309350540 HTTP/1.
这是 WCF:
[OperationContract]
[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
List<Note> GetNotes(string yyyyID)
【问题讨论】: