解決Ajax跨域問題:Origin xx is not allowed by Access-Control-Allow-Origin.


解決Ajax跨域問題:Origin xx is not allowed by Access-Control-Allow-Origin.

今天一個Ajax跨域問題,糾結我半天,記錄之。 

<html>
<head>
    <title>title</title>
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script>
        $.ajax({
            url:"http://map.yanue.net/gpsApi.php?lat=22.502412986242&lng=113.93832783228",
            type:'GET',
            success: function(data){
                $('body').append( "Name: " + data );
            }
        });
    </script>
</head>
<body>
    測試Ajax跨域問題
</body>
</html>

沒有結果,chrome用F12 下查看錯誤 得知:XMLHttpRequest cannot load http://map.yanue.net/gpsApi.php?lat=22.502412986242&lng=113.93832783228. Origin http://localhost is not allowed by Access-Control-Allow-Origin. AJAX跨域問題產生。

搜了好久,得知解決方案:

一:使用jsonp格式, 如jquery中ajax請求參數   dataType:'JSONP'。(可選)

<html>
<head>
    <title>title</title>
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script>
        $.ajax({
            url:"http://map.yanue.net/gpsApi.php?lat=22.502412986242&lng=113.93832783228",
            type:'GET',
            dataType:'JSONP',
            success: function(data){
                $('body').append( "Name: " + data );
            }
        });
    </script>
</head>
<body>
測試Ajax跨域問題
</body>
</html>

 

二,server端加上header設為 Access-Control-Allow-Origin:*

getHttpServletResponse().setHeader("Access-Control-Allow-Origin", "*"); // 跨域處理

問題就解決了。

 

 

 

感謝:   http://yanue.net/post-130.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM