qiniu JS SDK如何解决POST跨域问题?

新手上路,请多包涵

curl访问没问题,但是JS里面会这样。貌似POST跨域是个老大难的问题,我看list这个API只支持POST,那要怎么解决:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
万分感谢!

代码如下:

$.ajax({
    url: "http://rsf.qbox.me/list?bucket=name&prefix=photos/",
    dataType: "json",
    headers: {
        "Content-Type": "application/x-www-form-urlencoded",
        "Authorization": "QBox *token*"
    },
    error: function(jqXHR, textStatus, errorThrown) {
        alert("some thing get error?");
    },
    success: function(data, textStatus, jqXHR) {
        alert("perfect");
    }
});
阅读 3.8k
2 个回答

dataType: "jsonp"

新手上路,请多包涵

@Lxxyx 要是这么简单的话就不问了
如下这样的话浏览器会请求http://rsf.qbox.me/list?bucket=name&prefix=photos/&callback=xxxxxx&_=xxxrandomxxx. 这样的话因为请求地址变了,根据qiniu SDK说明token就变了。 而且每次callback函数Jquery随机生成都不一样。
最关键的是jsonp即使指定POST,可是实际上也还是Get方式。这个list API只支持POST?
http://developer.qiniu.com/code/v6/api/kodo-api/index.html#list

$.ajax({

type: "POST",
url: "http://rsf.qbox.me/list?bucket=name&prefix=photos/",
dataType: "jsonp",
headers: {
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization": "QBox token"
},
success: function(data) {
    alert(data);
}

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题