首页 > Web开发 > 详细

XDK html development --- Cross Domain Request

时间:2014-02-25 18:59:41      阅读:390      评论:0      收藏:0      [点我收藏+]

    Two days ago, I came across a problem. After building a restful web service for my app. I happily tried to access the data from the web service using phone. I sent request for data from server using following code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$.ajax({
    url: http://192.168.1.102:808/quser,
    type: ‘GET‘,
    dataType: ‘json‘,
    async :false,
    error : function (xhr, ajaxOptions, thrownError) {
        alert(xhr.readyState);
        alert(xhr.status);
        alert(thrownError);
      },
    success: function (data) {
        alert(data);
    }
});
}

  I used Intel XDK environment. emulator can return data. But when I test with real phone(both iphone and android) , xhr.status returned value 0. I started to search why this happened. Finally, I was aware of this cross domain request problem. Then start to search ‘phone gap cross domain request‘. Overall, they give two solutions:

  • JSON response header has Access-Control-Allow-Origin set to allow access to the domain: this is not very common since it poses a security risk. More information here.
  • JSON supports padding (JSONP): This is more commonly used by APIs to allow developers to access their data.

    I tried both, but none of them work. 

    I started feeling bad and disappointed. I went through a hard time :( , But this time, I didn‘t give up. Kept searching, kept believing that every problem in engineering must get a corresponding solution for it. Answer is here:http://software.intel.com/en-us/html5/articles/how-to-access-JSON-data-in-HTML5-apps.

Adding following two tags in our file. 

<script src="intelxdk.js"></script>
<script src="xhr.js"></script>

intelxdk.js
 and xhr.js actual files are not required,it will be included automatically in Intel XDK tools, just the script tags should be included.
Then I use the statement suggested from this site:
1
2
3
$.getJSON("http://time.jsontest.com", function(data){
    alert(data);
});

 Amazingly, it did work!!!!!Cheers!!!!!

PS: XDK is really easy to use for beginners.

XDK html development --- Cross Domain Request

原文:http://www.cnblogs.com/songwanzi/p/3565806.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!