【问题标题】:CSP issue using AJAX requests on in a Crossrider extension在 Crossrider 扩展中使用 AJAX 请求的 CSP 问题
【发布时间】:2014-09-30 17:58:21
【问题描述】:

我正在尝试在 Crossrider 扩展中运行 AJAX 请求,但我收到了与 CSP 相关的错误。

这是我的代码(为保护隐私而修改):

$.ajax({
  url : "https://example.com/...",
  type : 'POST',
  dataType : 'json',
  data : {user: "user", pass: "pass"}
  }).done(function(data) {
    console.log("POST Succeeded");
  }).fail(function(a, b, c, d) {
    console.log("POST Failed");
});

如果我从扩展程序运行代码,它不起作用,并且会出现“拒绝访问”错误!

为什么我不能在我的 Crossrider 扩展程序中运行请求?

【问题讨论】:

    标签: javascript ajax xmlhttprequest crossrider


    【解决方案1】:

    在扩展中使用标准的 jQuery AJAX 方法通常会导致 跨域 问题,从而阻止对内容的访问;因此,在编写 Crossrider 扩展程序时,最好使用框架提供的 appAPI.request 方法,这些方法是专门为跨浏览器跨域安全而开发的。

    因此,在您的情况下,您可以在 extension.jsbackground.js 中重写 POST 请求,如下所示:

    appAPI.ready(function($) {
      appAPI.request.post({
        url: "https://example.com/...",
        contentType: "application/json",
        postData: {user: "user", pass: "pass"},
        onSuccess: function(response) {
          console.log("POST Succeeded");
        },
        onFailure: function(code) {
          console.log("POST Failed");
        }
      });
    });
    

    [披露:我是 Crossrider 的员工]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      相关资源
      最近更新 更多