Ajax调用一直被浏览器阻止

时间:2014-03-06 08:16:18

标签: javascript jquery html

我有点陷入困境。

我正在开发一个小型移动网站。我试图使用ajax调用来调用web服务,但浏览器一直阻止我的调用。如果我使用标签启动Chrome ...“ - allow-file-access-from-files --disable-web-security”那么这个调用就可以了。我没有任何问题。

现在我的问题是,如果我托管网站,浏览器将阻止我的ajax调用,用户无法例如登录或检索信息。我在下面提出我的ajax电话......

$.ajax({
                async: true,
                beforeSend: function () {
                },
                complete: function () {  },
                type: 'POST',
                url: 'https://MySecretUrl.com/login?format=json',
                contentType: 'application/json',
                dataType: 'json',
                data: '{"UserId":"mySecretUserId","Password":"mysecretPassowrd"}',
                success: function (resultMessage) {
                    if (resultMessage.WasSuccessful == true) {
                        alert('YAY');
                    } else {
                        alert('Semi Yay');
                    }
                },
                error: alert('OOOOPS')
            });

有没有人知道从Web服务获取信息的解决方法,而没有任何浏览器阻止ajax调用?

任何建议都将不胜感激。

提前感谢您的帮助。

修改

嗨,大家好,所以我做了一些挖掘并发现了以下内容。

当使用浏览器安全性发出请求时,该调用会将POST更改为OPTIONS。这被称为预检请求。我找到的一个解决方法是,如果您正在进行GET调用,那么您可以使用jsonp作为您的数据类型。但现在我的问题是它与POST不兼容。是否有任何修复不需要更改Web服务?

1 个答案:

答案 0 :(得分:1)

  

是否有任何修复不需要更改Web服务?

没有。如果无法更改网络服务,您唯一的选择是不使用浏览器发出此请求。

您必须使服务器以可以跨域接受的格式返回数据,或者不要使用浏览器发出跨域请求。