如何使用ajax请求从box.com服务获取文件内容?

时间:2014-06-17 11:28:45

标签: javascript ajax box-api

我正在尝试使用直接链接从box.com获取CSS文件的内容并将其附加到head标记,但它不起作用。

$.ajax({                
        url: "https://app.box.com/shared/static/" + file_hash + ".css",                
        data: { client_id : '6guib1cgnk8uk2kdre45rjg7lt2xayegl94' },
        type: "GET",
        async: false,
        crossDomain: true,
        dataType: "text",
        success: function (data) {
          $("<style></style>").appendTo("head").html(data);
        },
        error: function (error) {
            console.log(error);
        }
    }
);

Cuold任何人解释如何让它发挥作用?

返回错误对象:

Object
abort: function ( statusText ) {
always: function () {
complete: function () {
done: function () {
error: function () {
fail: function () {
getAllResponseHeaders: function () {
getResponseHeader: function ( key ) {
overrideMimeType: function ( type ) {
pipe: function ( /* fnDone, fnFail, fnProgress */ ) {
progress: function () {
promise: function ( obj ) {
readyState: 0
responseText: undefined
setRequestHeader: function ( name, value ) {
state: function () {
status: 0
statusCode: function ( map ) {
statusText: "error"
success: function () {
then: function ( /* fnDone, fnFail, fnProgress */ )

1 个答案:

答案 0 :(得分:2)

这是我执行代码时收到的错误:

  

XMLHttpRequest无法加载https://app.box.com/shared/static/2mbz6a9olevi86oi43kk.css。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; https://example.com&#39;因此不允许访问。

问题在于您正在制作跨域(CORS)请求,但JavaScript is limited to requesting resources on the same domain除非目标应用程序明确允许它。

Box默认情况下不允许CORS请求,但they will enable them on per-application basis。您需要联系Box支持,并附上您的用例说明。