【问题标题】:AngularJs - Server throwing exception''XMLHttpRequest cannot load the "URL" Response for preflight is invalid (redirect)'AngularJs - 服务器抛出异常''XMLHttpRequest 无法加载预检的“URL”响应无效(重定向)'
【发布时间】:2018-02-14 21:03:41
【问题描述】:

服务器将对象返回为“undefined”和“XMLHttpRequest cannot load the "URL" Response for preflight is invalid (redirect)的原因是什么。。 p>

应用程序流程 - 它只是一个普通的邮政服务,向服务器发送文档详细信息作为回报应该返回一个包含各种参数的对象,但它返回'undefined'

发布文件的服务

fileUpload: {
    method: 'POST',
    url: config.apiPath + 'employee/service/pushRecords', //this is the URL that should return an object with different set of parameters (currently its returning Error error [undefined])
    isArray: false,
    params: {},
    headers: {
        'content-type': undefined
    }
},

创建表单数据 w.r.t 文档后我使用的以上服务

function registerFormdata(files, fieldName) {
    files = files || [];
    fieldName = fieldName || 'FileSent';
    var returnData = new FormData();

    _.each(files, function (file, ind) {
        returnData.append(fieldName,file);
    });

    return returnData;
}

现在这是使用这些服务的控制器

function sendFilesToServer() {
        var formData = employeePushService.registerFormdata(directive.dropZoneFile.fileToUpload);
        return docUploadService.fileUpload(formData)
            .then(function(document) {              
         // Extra actions but here the server should be returning an object with set of parameters but in browser console its Error [undefined]
            }).catch(logger.error);
    }

【问题讨论】:

    标签: javascript angularjs angularjs-directive angularjs-scope


    【解决方案1】:

    假设你帖子中的 URL 目标是正确的,你似乎有一个 CORS 问题,让我解释一些事情。 不知道是不是自己开发的服务端API,如果是,需要添加CORS访问,你的服务端必须返回这个header:

    访问控制允许来源:http://foo.example

    您可以将http://foo.example替换为*,表示所有请求源都可以访问。

    首先你要知道,当你在客户端发出AJAX CORS请求时,你的浏览器首先向服务器发出请求,检查服务器是否允许该请求,这个请求是一个OPTION方法,你可以看到这个例如,如果您在 chrome 中启用开发工具,则在网络选项卡中您可以看到该请求。 因此,在该 OPTIONS 请求中,服务器必须在响应标头中设置 Access-Control-Allow-Origin 标头。

    因此,您必须检查此步骤,您的问题是服务器端不允许您的请求。

    顺便说一句,CORS 请求并非支持所有内容类型,here 您有更多信息肯定会有所帮助。

    另一个link 有助于解决由于重定向而发生 302 的问题。在这种情况下,POST 响应还必须包含 Access-Control-Allow-Origin 标头。

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 2017-02-04
      • 2016-05-31
      • 2017-01-19
      • 2018-12-25
      • 2016-03-27
      • 2016-04-10
      • 2017-04-13
      • 1970-01-01
      相关资源
      最近更新 更多