当前位置: 首页 > 面试题库 >

使用Ajax将CORS标头添加到http请求

韦德厚
2023-03-14
问题内容

我已经开发了一个Restfull应用程序,我想添加另一个Web应用程序来使用其服务,因此我进行了以下Ajax调用:

 $.ajax({
            type: "Post",
            async: false,
            url: "ip_adress/Inviter/api/Account/Register",
            data: donne,
            headers: {  "Access-Control-Allow-Origin:": "*"},
            success: function (data) {
                console.log(data);
                var tab = [];
                tab["username"] = username;
                tab["password"] = pwd;
                var isLogged = Login.CheckCredential(tab, username);
                return isLogged;
            },
            error: function (xhr, status, error) {
                console.log(xhr);
                console.log(status);
                console.log(error);
            }

        });

我得到这个例外:

对象{readyState:0,状态:0,statusText:“
SyntaxError:无法执行’setRequestHeader’…-Origin:
‘不是有效的HTTP标头字段名称。”}错误DOMException:无法在’XMLHttpRequest’上执行’setRequestHeader’
:’Access-Control-Allow-Origin:
‘不是有效的HTTP标头字段名称。

所以我需要知道:

  • 在这种情况下如何启用CORS?

  • 如何修复我的代码?


问题答案:

您不能像那样授权自己。这是一个 响应 头;规范中的细节。您要向其发送请求的 服务器
必须将该标头发送回,以使浏览器知道可以允许您的页面向该服务器发送ajax请求。如果您要请求的服务器不允许您的来源,则您无法在客户端代码中执行任何操作。



 类似资料:
  • 问题内容: 澄清点:将自定义标头添加到我的jQuery ajax调用中没有任何问题,我想将我的自定义标头自动添加到所有ajax调用中。 如果您看看jquery $.ajax自定义http标头问题(不是我的问题),您将看到一个很好的示例,说明如何为每个ajax调用手动实现代码。 我想为所有jQuery ajax调用覆盖beforeSend。根据jQuery文档,我可以使用jQuery.ajaxSet

  • 问题内容: 我想将自定义标头添加到jQuery的AJAX POST请求中。 我已经试过了: 当我发送此请求并观看FireBug时,看到以下标头: 选项xxxx / yyyy HTTP / 1.1 主机:127.0.0.1:6666 用户代理:Mozilla / 5.0(Windows NT 6.1; WOW64; rv:11.0)Gecko / 20100101 Firefox / 11.0 接受

  • 问题内容: 这是我的第一篇文章。 我刚刚开始学习Go和Angular,并且尝试将angular应用程序连接到go api。我已经写了这两本书,并且一直坚持找出问题的根源。我以为这是一个CORS问题,但是如果我在Angular http请求中不包含代码的标题行,它就可以正常工作。在这一点上,我只是想添加标题。授权代码尚未实现。 这两个应用程序都在本地运行,端口5000上的Go应用程序和4200端口上

  • 先决条件 Apache Tomcat 7 Spring3.2.11。释放 Apache Camel 2.14.1 Camel HTTP4endpoint(Camel-HTTP4) 问题 我尝试通过http4组件调用https加密站点。位于我的服务器和Internet(目标服务器)之间的代理检查标头“User-Agent”并在请求为空时拒绝请求。 连接请求不包含http标头“User Agent”。

  • 问题内容: 我正在使用Axis API访问Axis HTTP服务器。该API的文档可在此处找到。 我正在使用以下代码将处理程序添加到服务器。类型为java.xml.rpc.Service 我知道服务名称是正确的,因为我在随后对服务对象的调用中获得了正确的输出。 处理程序没有以某种方式被调用。这是Handler类。我的意图是在 将请求 转发到服务器之前 向HTTP请求添加自定义标头 。 上面的代码有

  • 问题内容: 有谁知道如何使用JavaScript或jQuery添加或创建自定义HTTP标头? 问题答案: 根据您的需求,有几种解决方案… 如果要向 单个请求添加自定义标头(或标头集), 则只需添加属性: 如果要向 每个请求添加默认标头(或标头集),请 使用: 如果 要向每个请求添加标头(或标头集), 则将钩子与一起使用: 编辑(更多信息): 要注意的一件事情是,您只能定义一组默认标头,而只能定义一