Javascript 当WebService托管在Azure云上时,Jquery AJAX调用失败

Javascript 当WebService托管在Azure云上时,Jquery AJAX调用失败,javascript,ajax,jquery,azure,Javascript,Ajax,Jquery,Azure,我正在尝试调用托管在本地主机上的Web服务。这个AJAX调用对我很有用,我可以看到“授权”令牌被发送到服务请求的头中 $.ajax({ type: method, url: serviceUrl, beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Authorization", Token); }, contentType: "

我正在尝试调用托管在本地主机上的Web服务。这个AJAX调用对我很有用,我可以看到“授权”令牌被发送到服务请求的头中

    $.ajax({
        type: method,
        url: serviceUrl,
        beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Authorization",  Token); },
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        ProcessData: true,
        cache: false,
        success: successHandler,
        error: errorHandler
    });

但这次我尝试调用托管在Azure云上的服务,同样的AJAX调用也可以,但它不发送头内容。我使用fiddler检查请求的头内容。我可以做些什么,使标头具有“授权”标记吗?

它可能是跨域策略限制。您必须确保ajax调用和服务位于同一个域内,否则您必须进行一些黑客操作才能使其正常工作。

有一些方法可以防止跨域ajax调用。对此(或)有多种解决方法,但最“正确”的方法似乎是,我认为您只需更改AJAX调用中的
数据类型即可:

$.ajax({
    //...etc.
    dataType: "jsonp",
    //...etc.
});

如果这不是问题,请尝试添加
returntrue发送前发送给您的
处理程序。
,但我不知道如果它根本不返回值会发生什么。

我在Azure cloud上托管了应用程序(我从中进行ajax调用)和WebService,两者都在同一个域上。但是我仍然看不到ajax请求头中发送的令牌。我可以做些什么来找到根本原因吗?我更改了数据类型:“jsonp”,但即使这样似乎也无法解决问题。我仍然没有看到在AJAX请求的头中发送任何数据。我尝试过,但仍然不起作用。是否有其他问题不允许AJAX调用在头中发送令牌?