我用一个简单的方法jQuery.ajax:为什么向服务器发送OPTIONS请求?
$.ajax({
type: "GET",
url: serviceUrl + '/GetAgentsGroupNameById',
contentType: "application/json; charset=utf-8",
data: { id: agentsGroupId },
async: false,
success: function (data) {
agentsGroupName = data["d"];
},
error: function (request, message) {
agentsGroupName = '';
}
});
“获取”请求被发送,我从服务器获取一个结构良好的JSON响应。 的问题是,我在另一个请求生成相同的URL开发工具看,有请求方法:OPTIONS,用空的反应,我看到了一个错误:
OPTIONS http://localhost:1004/MobileService.asmx/GetSubscribedAgentsByUserId?userId=27 500 (Internal Server Error)
这是什么OPTIONS请求? 为什么会发生?
P.S.我提到,如果我删除contentType:“application/json; charset = utf-8”(并添加dataType:json或jsonp),则不会生成OPTIONS请求,但我没有得到格式正确的json作为响应我得到还挺XML文档)
BTW:服务是asp.net C#:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public string GetAgentsGroupNameById(int id)
请让我知道如果您需要任何进一步细节关于请求或响应
谢谢从前进!
是的你是对的 – 2012-07-11 14:47:03
不知道该链接应该采取的人虽然?! – 2012-07-11 14:50:01
我只做“GET”请求,就像你看到的那样,当我使用dataType:'jsonp'时,我没有任何错误,但是我得到一个xml文档作为响应,而不是一个json对象。 – benams 2012-07-11 14:52:26