在PhoneGap App中,即使服务器返回200 OK状态,也会触发AJAX调用错误事件

时间:2017-02-27 05:03:19

标签: javascript ajax cordova spring-security cross-domain

我正在使用下面的Ajax调用来从crossdomain(PhoneGap)连接Spring安全性。我得到的响应是200 OK - 它具有JSON格式的预期响应。但由于CORS,错误事件被解雇了。在Spring方面,我添加了一个CORS过滤器以允许任何类型的URL(Access-Control-Allow-Origin =' *')。

$.ajax({
    type:'POST',
    url: CONTEXTPATH + '/j_spring_security_check',
    data: formData,
    dataType: 'text json',
    cache: false,
    crossdomain: false,
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'X-Requested-With' : 'XMLHttpRequest',
    },
    success: function(data) {
    },
    error: function(data) {
    }
});

浏览器控制台中的响应是:

  

POST XHR http://192.168.0.20:8080/startupbay/j_spring_security_check [HTTP / 1.1 200 OK 260ms]阻止跨源请求:同源策略禁止在http://192.168.0.20:8080/startupbay/j_spring_security_check读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin'。

请求和响应标头是:

响应标题:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Content-Type, x-requested-with, Origin, Accept
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS, PATCH, HEAD
Access-Control-Allow-Origin:*
Access-Control-Max-Age:86400
Access-Control-Request-Headers:x-requested-with
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
Content-Length:0
Date: Thu, 23 Feb 2017 06:14:39 GMT
Expires:0
Pragma:no-cache
Server:Apache-Coyote/1.1
X-Content-Type-Options:nosniff
X-Frame-Options:DENY
X-XSS-Protection:1; mode=block

请求标题:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.5
Access-Control-Request-Headers:x-requested-with
Access-Control-Request-Method:POST
Connection:keep-alive
Host:192.168.0.20:8080
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
origin:http://192.168.0.20:3000

在错误部分,我查找了' xhr'中提到的错误。 statusText:error,responseText:'',status:0。

请帮我解决这个问题。

当我设置crossdomain:true时,在浏览器控制台中我只能看到OPTIONS请求,但后面没有POST请求。

只是要添加,此问题仅出现在' / j_spring_security_check' URL。对于另一个URL,相同类型的设置工作正常。

0 个答案:

没有答案