Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么我的Ajax帖子的网络错误检测没有';行不通_Jquery_Ajax_Google App Engine - Fatal编程技术网

Jquery 为什么我的Ajax帖子的网络错误检测没有';行不通

Jquery 为什么我的Ajax帖子的网络错误检测没有';行不通,jquery,ajax,google-app-engine,Jquery,Ajax,Google App Engine,在附加上传的用户文档时,我正在对myapp.appspot.com/upload进行Ajax POST调用。有时,我的网络完全关闭了,而响应却从未出现。我需要显示一条错误消息,我认为Ajax的错误:部分可以处理这个问题,但是没有,没有错误消息,什么都没有 我的代码: $.ajax({ type: "POST", url: $("form#data").attr("action"), data: formData, contentType: false,

在附加上传的用户文档时,我正在对myapp.appspot.com/upload进行Ajax POST调用。有时,我的网络完全关闭了,而响应却从未出现。我需要显示一条错误消息,我认为Ajax的
错误:
部分可以处理这个问题,但是没有,没有错误消息,什么都没有

我的代码:

$.ajax({
    type: "POST",
    url: $("form#data").attr("action"),
    data: formData,
    contentType: false, 
    processData: false,
    dataType: 'binary', // using jquery.binarytransport.js
    success: function (returnValue, textStatus, jqXHR ) {
        // Default response type is blob
        saveAs(returnValue, "result.pdf");    // using FileSaver.js
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log("error")
        if (XMLHttpRequest.readyState == 4) {
            // HTTP error (can be checked by XMLHttpRequest.status and XMLHttpRequest.statusText)
            console.log("Http Error: ", XMLHttpRequest.status,
                        "Http Error text: ", XMLHttpRequest.statusText)

        }
        else if (XMLHttpRequest.readyState == 0) {
            // Network error (i.e. connection refused, access denied due to CORS, etc.)
            console.log("Network Error: ", XMLHttpRequest.status,
                        "Network Error text: ", XMLHttpRequest.statusText)
        }
        else {
            console.log("Error. Something weird is happening with the ajax request.")
        }
    }
})

发生了什么事?

如果它像您暗示的那样是跨源的,那么它可能应该是一个
类型:jsonp
请求。另外,在成功处理程序(顶部)中弹出一个
console.log
,查看是否抛出错误。控制台窗口中有任何内容吗?您的意思是它不应该像现在配置的那样工作吗?因为它在大多数情况下都能工作,除非我模拟了一些网络故障(例如,当我拔出电缆时)。另外,我已经测试了您的建议,但是没有任何内容被打印到控制台。从jquery文档
中,由于浏览器的安全限制,大多数“Ajax”请求都受同源策略的约束;请求无法从其他域、子域、端口或协议成功检索数据。脚本和JSONP请求不受相同来源策略限制。
Omg I出错。跨域调用不会在那里发生,而是在web服务器内部发生。很抱歉Ajax调用指向我的相同.appspot域,特别是指向myapp.appspot.com/upload