如何设置Origin Request Header

时间:2017-10-18 10:26:48

标签: javascript jquery asp.net asp.net-web-api

我想向远程API发送AJAX请求。

function Gettest(CourseID) {
    var param = { "CourseID": CourseID};
    param = JSON.stringify(param);
    $.ajax({
        type: "Post",
        url: apiurl + "Course/DelCoursetargetedaudience",
        contentType: "application/json; charset=utf-8",
        data: param,
        dataType: "json",
        success: function (data) {
        },
        error: function (response) {
        }
    });
};

但是我需要在发送请求之前更改源名称。

请参考下图。

enter image description here

2 个答案:

答案 0 :(得分:8)

简而言之:你不能。

MDN所述; Origin是一个“禁止”标题,意味着您无法以编程方式更改它。

您需要配置Web服务器以允许CORS请求。

将此添加到您的Web.config

Hello
i'm
you
can
be

答案 1 :(得分:3)

正如Baksteen所述,您无法在JavaScript中更改此标头值。您必须编辑服务器配置以允许跨源请求。

但是: 阅读完评论后,我认为您只需要一个解决方案来进行调试和测试。

在这种情况下,您可以使用Chrome并使用特殊的不安全参数启动它。如果您向Chrome提供此参数,则会允许您跨域请求。

请勿将此Chrome实例用于测试页面以外的其他内容!

chrome --disable-web-security --user-data-dir

我为Firefox和Chrome尝试了几个附加组件,但它们不适用于最新版本的浏览器。所以我建议切换到chrome并使用上面的参数来测试你的API调用。

如果您对更强大的解决方案感兴趣,可能需要使用调试代理,例如Fiddler from Telerik。您可以编写自定义规则,因此Fiddler会在请求离开您的PC之前更改您的标头。但是在你可以使用它的所有功能之前,你必须深入研究这个工具。这可能很有趣,因为它可能会帮助你解决这个调试问题。