我有一个JS项目,试图向asp.net Web服务发送参数 Web服务在IIS服务器上。 这是我的JS功能:
function call_Ajax(func, param, callback) {
var pageUrl ="http://XXXXX.com/gdmService/LoggerService.asmx/"+ func;
$.ajax({
type: "POST",
url: pageUrl + "",
data: param,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: eval(callback),
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
如果我从与服务相同的项目中的页面运行此功能,那么它工作得很好。 (pageUrl不同,它只是服务的名称,因为它在同一个解决方案上) 但当我试图从另一个页面使用此功能时,我收到一个错误:
XMLHttpRequest cannot load https://XXXX.com/gdmService/LoggerService.asmx/Write2DB.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://XXXX.com' is therefore not allowed access.
(我也试过http)
如果我尝试将链接复制并粘贴到浏览器,则错误为:
Request format is unrecognized for URL unexpectedly ending in '/Write2DB'.
我读到了它,有些人说这是一个跨域问题(我发现的大部分信息都是用JS到PHP)
我该如何解决?
服务上的所有方法都是[Web Methods]
。
答案 0 :(得分:-1)
将您的dataType更改为" jsonp"。