【发布时间】:2015-10-07 05:17:53
【问题描述】:
很抱歉再次问这个问题,但我没有找到适合我的问题的答案。
我尝试构建以下内容: 我想用标准网页连接到 WCF-Webservice。网站和网络服务都托管在同一台机器上的 IIS 中。
我为 web.config 启用了跨域:
<webHttpBinding>
<binding name="webHttpBindingWithJSONP" crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
还有我的 AJAX 请求:
$.ajax({
type: "POST",
url: config.endpoints.db.production + "AddData/",
data: JSON.stringify(data),
contentType: "application/json",
dataType: "json",
crossDomain: true,
// processData: true,
success: function(data, status, jqXHR) {
// alert("success..." + data);
// loadingVisible(false);
// loadingFinished = true;
},
error: function(xhr) {
alert("failure..." + xhr.responseText);
// loadingFinished = true;
// loadingVisible(false);
}
});
发出请求后,我在 jquery 的 Visual Studio 中收到“访问被拒绝”-错误。 在网上搜索后发现这是一个很常见的跨域问题,但没有找到解决办法。我尝试在 ajax 请求中设置“crossDomain:true”,尝试使用 jsonp(它适用于我的 GET 请求)但没有任何帮助。
有没有合适的方法来解决这个问题?我读到这个问题可以通过 ajax 身份验证来解决。这是正确的,我怎样才能做到这一点?
【问题讨论】:
-
你设置了accept-header吗? stackoverflow.com/questions/6290053/…
-
试试 jsonp
dataType: "jsonp", -
服务器端也可能有问题,检查一下。 stackoverflow.com/questions/5908195/…
-
我设置了接受标头,但没有任何改变。和以前一样的错误。 jsonp 仅适用于“GET”请求。
标签: javascript jquery ajax wcf cross-domain