【发布时间】:2011-10-06 08:54:09
【问题描述】:
我正在尝试使用带有 AJAX 的 .NET Web 服务并想要一个 JSON 响应。一切正常。我已经使用了 fiddler 并获得了适当的 Json returnet。在浏览器中使用纯 URL 也会给出适当的 XML。
即使使用 PHP Curl 也会给我正确的 JSON 作为响应,但是当我尝试使用 AJAX 时,我得到一个“500 内部服务器错误”。
任何帮助,谢谢。
<script>
$(document).ready(function() {
$.ajax({
type: "POST",
url: "http://localhost:9000/APIs/BuyVoucherService.asmx/HelloWorld",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
alert(data);
},
error: function(data){
alert(data);
}
});
});
</script>
【问题讨论】:
-
你为什么要发帖?当您在浏览器中访问该页面时,这是一个 GET。尝试将类型更改为 GET。另外,发布 500 错误的全文。
-
从 .asmx 网络服务获取 JSON 时,您必须使用 POST 和 contentType application/json,否则它只会返回 XML
-
我意识到的问题是,由于跨域问题,这不会起作用。让 AJAX 调用与跨域解决方案一起使用的解决方案是使用 JSONP。 json-p.org了解更多信息
-
显然错误来自服务器端。你能展示一下网络方法吗?
-
是的,这是服务器端错误。正如我所说,问题是服务和站点托管在不同的域上。因此,如果我想让 AJAX 工作,我不得不使用 JSON-P。
标签: asp.net ajax json web-services