JavaScript与Web服务通信

时间:2014-04-29 20:33:59

标签: javascript asp.net web-services service cross-domain

我有一个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]

1 个答案:

答案 0 :(得分:-1)

将您的dataType更改为" jsonp"。