0

我需要开发 chrome 扩展,因为我需要使用 REST API 服务发布产品信息,下面是 URL

https://ABCD.com/api/products/?token=XXXXf&product[name]=Headphones&product[price]=100&product[permalink]=headphones1

直接放在浏览器中时得到响应..

但我需要通过 JQuery ajax post call 发布这个..我尝试了一些方法但没有运气..

我的尝试:

var product = [{ "name": "128.3657142857143", "price": "7", "permalink": "headphones1"}];
    $.ajax({
        type: "POST",
        url: "URL",
        // The key needs to match your method's input parameter (case-sensitive).
        data: JSON.stringify({ token: 'XXXX', product: product }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) { alert(data); },
        failure: function (errMsg) {
            alert(errMsg);
        }
    });

通话后

var product = [{ "name": "128.3657142857143", "price": "7", "permalink": "headphones1"}];

$.post("URL", JSON.stringify({ token: 'XXXX', product: product }),
  function (data) {
      alert('success');
  }
);

错误 XMLHttpRequest 无法加载URL。Access-Control-Allow-Origin 不允许 Origin null。

请帮助我了解如何形成 jquery ajax 调用

4

2 回答 2

0

这是前一段时间被问到的,所以它可能不再相关了,但是!

看起来你根本不想要一个 POST,你想要一个 GET 代替。

因为:

  1. 当您在地址栏中输入 URL(即 GET)时,它会起作用
  2. URL 具有正确的 GET 查询数据

在控制台的此页面上使用以下内容:

var data = { 
  token: 'XXXX', 
  product: { "name": "128.3657142857143", "price": "7", "permalink": "headphones1"}
}

$.get('/', data);

然后检查网络请求,我看到:

GET http://stackoverflow.com/?token=XXXX&product[name]=128.3657142857143&product[price]=7&product[permalink]=headphones1
于 2013-01-19T08:53:51.297 回答
0

jQuery 发布API 参考。

三十个字符限制。

但是,更重要的是,您需要确保您已授予您的 chrome 扩展程序访问该域 (whatever.herokuapp.com) 的权限。

于 2012-05-20T01:54:13.053 回答