AJAX跨域parsererror報錯

$.ajax({
                url:"http:XXX.XXX.xom/XX.php",
                dataType:"jsonp",
                processData: false,
                type:"get",
                jsonp:"jsoncallback",//注意這點:不設置默認爲"callback"
                success:function(data){ 
                    console.log(data);
                },
                error:function(XMLHttpRequest, textStatus, errorThrown){
                     console.log(XMLHttpRequest.status);
                       console.log(XMLHttpRequest.readyState);
                       console.log(textStatus);
                }
            })

報錯提示“parsererror”
查了好多網上所謂的解決方案,寫的好多但是不適用(程序員果然寫不了文章)
問題根源是跨域後ajax是根據get傳統函數調用實現數據獲取的
需要在服務端通過get獲取callback值然後拼接到需要返回的json傳前面
php示例:

<?php
    $a['a'] = 1;
    $a['b'] = 1;
    $callback = $_GET['jsoncallback'];//關鍵是這個。若是在ajax()內設置了jsonp:"jsoncallback",那麼填寫jsoncallback,本王上面設置了,沒有設置則直接填寫callback(默認值)
    exit($callback."(".json_encode($a).")");
?>

問題得以解決,希望能對大家有所幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章