首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置回源请求头

如何设置回源请求头
EN

Stack Overflow用户
提问于 2017-10-18 18:26:48
回答 2查看 37.6K关注 0票数 10

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

代码语言:javascript
复制
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) {
        }
    });
};

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

请参考下图。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-18 18:41:34

简而言之:你不能。

正如在MDN上所描述的,Origin是一个“禁止”的头文件,这意味着你不能通过编程来改变它。

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

要启用CORS,请将以下内容添加到Web.config

代码语言:javascript
复制
<system.webServer>   
    <!-- Other stuff is usually located here as well... -->
    <httpProtocol>
        <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*" />               
        </customHeaders>
    </httpProtocol>
<system.webServer>

或者,在Global.asax.cs中使用

代码语言:javascript
复制
public class WebApiApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        /* Some register config stuff is already located here */
    }

    // Add this method:
    protected void Application_BeginRequest()
    {
        HttpContext.Current.Response.AddHeader
            (name: "Access-Control-Allow-Origin", value: "*");            
    }
}
票数 25
EN

Stack Overflow用户

发布于 2017-10-18 19:08:42

正如Baksteen所说,您不能在JavaScript中更改此标头的值。您必须编辑您的服务器配置以允许跨域请求。

但是:读完你的评论后,我认为你只需要一个调试和测试的解决方案。

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

不要将这个chrome实例用于测试页面以外的其他事情!

代码语言:javascript
复制
chrome --disable-web-security --user-data-dir

我尝试了火狐和Chrome的几个附加组件,但它们在最近版本的浏览器上都不起作用。所以我建议切换到chrome并使用上面的参数来测试你的API调用。

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46808011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档