我无法通过另一台服务器进行ajax调用。它在本地工作,如果我使用c#代码或使用像soapui这样的程序,它可以工作,所以我想我的浏览器是"阻塞"电话。下面的wsdata包含一个肥皂信封。错误消息是" 400错误请求"。有什么想法吗?
我无法使用下面的web.config设置,因为它不受支持。
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true"/>
</webHttpBinding>
</bindings>
</system.serviceModel>
function invokeService() {
$(document).ready(function() {
$.ajax({
type: "GET",
//async: "false",
url: "service.svc",
data: wsdata,
contentType: "application/soap+xml; charset=utf-8",
dataType: "xml",
//processData: true,
success: function(result) {
AjaxSucceeded(result);
},
error: AjaxFailed
});
});
}
function AjaxSucceeded(result) {
alert(result);
}
function AjaxFailed(result) {
alert(result.status + ' ' + result.statusText);
}
更新。这适用于本地但不适用于其他服务器。
我收到消息&#34; 200 ok&#34;但是如果你粘贴&#34; servicev.svc&#34;那么响应包含的内容就像显示的那样。在您的浏览器中。
function invokeService() {
$(document).ready(function() {
$.ajax({
type: "POST",
//async: "false",
url: "service.svc",
data: wsdata,
contentType: "application/soap+xml; charset=utf-8",
//dataType: "jsonp",
//processData: true,
success: function(result) {
AjaxSucceeded(result);
},
error: AjaxFailed
});
});
}
function AjaxSucceeded(result) {
alert(result);
result();
}
function AjaxFailed(result) {
alert(result.status + ' ' + result.statusText);
}
答案 0 :(得分:0)
将dataType设置为jsonp,因为您正在设置webHttpBindingWithJsonP
并确保从服务传递json响应
dataType: 'jsonp'