JQuery Ajax 调用将转到 .fail,即使服务器响应是具有有效 JSON 数据的 HTTP 200



知道为什么这个JQuery代码失败了吗?无论我尝试什么,它总是去.fail,而不是.done(或成功)。报告的错误非常通用(状态文本 ="错误")。

ajax 调用正在正确地将数据发送到服务器,并且服务器响应成功,使用有效的 json 数据。这是Javascript:

function submitform()
    {       
        $.ajax({
          type: "POST",
          url:'http://192.168.1.73:8080/LicenseService/v1/license',
          data: getData()
        }).done(function(data) {
          alert('success');
        }).fail(function(data) {
          alert('fail!');
        });
    }

这是HTTP请求(来自Fiddler)

POST http://192.168.1.73:8080/LicenseService/v1/license HTTP/1.1
Host: 192.168.1.73:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 112
Origin: null
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
{"licensetype":"com.test.testlicensetype","ExpiryDate":"2015-12-15","id":"alksjdfojasdoifjsaoid"}

以下是 HTTP 响应:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/json
Transfer-Encoding: chunked
Date: Sun, 01 Feb 2015 04:00:03 GMT
50
{ "LicenseKey" : "VHVlIERlYyAxNSAwMDowMDowMCAyMDE1YWxrc2pkZm9qYXNkb2lmanNhb2lk"}
0

欢迎任何想法!

您尝试访问的服务器不允许跨源请求。

服务器必须具有以下标头:

access-control-allow-origin: <server name or *>
access-control-allow-methods: POST
access-control-allow-headers: content-type, accept
access-control-max-age: 10

最终,您可以为此找到代理。

更多信息可以在这里找到:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

最新更新