Javascript 使用jqueryajax发布请求

Javascript 使用jqueryajax发布请求,javascript,jquery,ajax,box-api,Javascript,Jquery,Ajax,Box Api,llo我正在使用box api来进行集成,他们只给出了curl来获取访问令牌,如下所示 is curl https://www.box.com/api/oauth2/token \ -d 'grant_type=authorization_code&code={your_code}&client_id={your_client_id}&client_secret={your_client_secret}' \ -X POST 我想使用jquery ajax请求获取访问令

llo我正在使用box api来进行集成,他们只给出了curl来获取访问令牌,如下所示

is curl https://www.box.com/api/oauth2/token \
-d 'grant_type=authorization_code&code={your_code}&client_id={your_client_id}&client_secret={your_client_secret}' \
-X POST
我想使用jquery ajax请求获取访问令牌,我的代码如下所示:

var data2= '{"grant_type":"authorization_code", "client_id":"61oliuyi1jckqos0j8zzl9h4t791umux" ,"client_secret":"Oi1XS56al61oOrrvAL3i5gdPTfe7QO9V" ,"code" :"'+code+'"}';
var data1 = JSON.parse(data2);

$.ajax({
                    type: 'POST',
                    url:  "https://www.box.com/api/oauth2/token",
                    data: data1,
                    success: function(json) {
                        console.log(e);
                       alert("success"+json);
                    },
                    error: function(e) {
                        console.log(e)
                        alert("Failure"+ JSON.stringify(e));

                    }
                });

MLHttpRequest cannot load https://www.box.com/api/oauth2/token. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

问题仅仅是由于跨域请求造成的。Javascript源策略将阻止您从另一个域向API发出Ajax请求(如您正在使用的localhost)。很好地解释了这个错误

当您尝试使用Box.com API时,应该使用使代码正常工作。他们博客上的一篇开发人员文章准确地展示了如何集成YQL,这似乎是最好的选择。

试试以下方法:

$.ajax({
                    type: 'POST',
                    url:  "https://www.box.com/api/oauth2/token",
                    data: data1,
                    dataType:"json",
                    success: function(val) {
                        console.log(e);
                       alert("success"+val);
                    },
                    error: function(e) {
                        console.log(e)
                        alert("Failure"+ JSON.stringify(e));

                    }
                });

另外,请将您的问题发布到您缩小范围的地方。MLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。解决方案是什么?请使用YQL->。代码在我上面链接的文章中进行了描述。或者,使用一些服务器端逻辑与服务交互(ruby on rails有一些lib,可能还有其他),一般来说,最好总结一些来自外部链接的信息,提供尽可能多的信息,以解决问题,如果将来该页面消失,由于web浏览器强制执行的公共源策略,此操作仍将失败