我有一个问题,我正在从API获取json数据,

  $.ajax({
    url: request,
    type: "get",
    contentType: "application/json; charset=utf-8",
    dataType: "jsonp",
    success: function (data) {
        if (data.ResultCode==="200") {
            console.log(data.Result[0]);
        }
        else if (data.ResultCode !== "200") {
            myApp.alert(data.ResultDesc, "");
        }

    },
    error: function () {
        console.log("your call failed");
        myApp.alert("Sunucuya erişilemiyor.","");
    }
});

这是我写的代码,出现错误



url是正确的,我看不到问题。

最佳答案

dataType更改为:dataType:“json”,

根据您的最后评论:



当源端未启用CORS在不同域之间共享数据时,将发生此错误。如果您有权访问源,然后启用CORS,则将获取数据。

否则,另一个选择是在服务器上创建代理,然后调用该代理以从其他服务器获取数据。例如在php中,您可以执行以下操作:

//fetch.php
<?php
   header('Content-Type: application/json');
   $homepage = file_get_contents('http://www.example.com/');
   echo json_encode($homepage);
?>

现在,您可以调用此文件来提供数据:
var request = 'fetch.php';
$.ajax({
    url: request,
    type: "get",
    //contentType: "application/json; charset=utf-8", // not needed in this case
    dataType: "json", // <----this has to be json
    success: function (data) {
        if (data.ResultCode==="200") {
            console.log(data.Result[0]);
        }
        else if (data.ResultCode !== "200") {
            myApp.alert(data.ResultDesc, "");
        }
    },
    error: function () {
        console.log("your call failed");
        myApp.alert("Sunucuya erişilemiyor.","");
    }
});

关于javascript - Ajax的get方法不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36148763/

10-13 03:09