我有一个带有以下ajax方法的html页面:
$(document).ready(function() {
$.ajax({
type: "POST",
url: "http://www.webservice.com/blahblah.asmx/blahb123",
data: "tnWsGuid=TEST1",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(msg)
{
alert("sucess")
},
error: function(e)
{
alert(JSON.stringify(e));
}
});
});
这是对我的回复403禁止。一位同事构建了Web服务,我无法访问代码,也没有当前正在休假时更改它的能力。我需要显示这些数据 - 此时我尝试的一切都失败了,并给了我一个403禁止的错误。我已将网址名称和成功功能更改为仅用于显示代码的警告对话框。
另一件事是,json似乎是用XML包装的,来自ASP.NET Web服务,如下所示:
<string xmlns="http://Walkthrough/XmlWebServices/">
{"approverName":"","emailAddress":"","companyName":"ABC","address":{"streetAddress1":"12 BlahBlah","streetAddress2":"","state":"ON","zipCode":"","country":"SO","phoneNumber":""},"tabledata:"[{"vendorPart":"AAAAA","partDescription":"N/A","price":"0.00","quantity":"28"},{"vendorPart":"BBBBBBB","partDescription":"N/A","price":"0.00","quantity":"3"},{"vendorPart":"CCCCCC","partDescription":"N/A","price":"0.00","quantity":"25"}]}
</string>
这不是最初的意图,因为我原本期望收到json但是我现在无法做任何事情,必须用XML处理它,只是尝试将json格式化为json对象。
我也尝试过如下:
$(document).ready(function() {
$.ajax({
type: "GET",
url: "http://www.webservice.com/blahblah.asmx/blahb123",
data: "tnWsGuid=TEST1",
dataType: "xml",
contentType: "text/xml",
success: function(msg)
{
alert("sucess")
},
error: function(e)
{
alert(JSON.stringify(e));
}
});
});
最后,我将在这里输出来自FireFox的Firebug响应,这是我尝试的两个例子(json / xml)
Json:http://i.imgur.com/zJy4BvD.jpg
XML:http://i.imgur.com/6qiGVwQ.jpg
非常感谢您的阅读!
答案 0 :(得分:1)
如果调用是跨域调用,则在不使用dataType jsonp时可能会遇到问题。
答案 1 :(得分:1)
删除内容类型标题似乎删除了403 forbidden。