使用AJAX从其他URL获取jSON数据

时间:2015-01-02 18:11:04

标签: jquery ajax json

我正在尝试使用AJAX从外部链接获取jSON数据,因为它不打印输出。我尝试了很多问题并尝试了以下方式,但没有一个能为我工作。

测试1

$.ajax({
    "url":"http://20percents.com/created_by_mohan/testAll.php",
    "type":"GET",
    "data": { fields: "title" },
    "dataType":"jsonp",
    "contentType":"application/json",
    "jsonpCallback":"myCallback",
    "success":function(data){
        console.log(data);
        alert(data.title);
    }               
})

测试2

$.ajax({
  url: 'http://20percents.com/created_by_mohan/testAll.php',
  type: 'GET',
  data:  { fields: "title" },
  success: function(data) {
    //called when successful
    $('body').html(data);
  },
  error: function(e) {
  }
});

测试3

var mydata;
$.ajax({
   url: 'http://20percents.com/created_by_mohan/testAll.php',
   dataType: 'json',
   success: function(data) {
      mydata = data; 
      console.log(mydata);
   }
});

测试4

$.ajax({
type:"GET", 
    url: "http://20percents.com/created_by_mohan/testAll.php", 
    success: function(data) {
            $("body").append(JSON.stringify(data));
        }, 
    error: function(jqXHR, textStatus, errorThrown) {
            alert(jqXHR.status);
        },
   dataType: "jsonp"
});

我现在需要获得一些数据,例如title,storeid,store-cuisine。我怎样才能使这个工作?

由于

2 个答案:

答案 0 :(得分:1)

尝试

var url = "http://20percents.com/created_by_mohan/testAll.php?"
, data = {"fields":"titles"}
, results = $("#results")
, request = function(url, data) {
    results.text("requesting " + data.fields + "...");
    return $.getJSON("https://query.yahooapis.com/v1/public/yql?q="
      + "select * from json where url='" + url + $.param(data) + "'"
      + "&format=json&callback=")
};
request(url, data)
.then(function(data) {
  console.log(data)
  results.text(JSON.stringify(data.query.results.json.data, null, 4))
}, function(err) {
  console.log(err)
});

请参阅Working with JSONP



var url = "http://20percents.com/created_by_mohan/testAll.php?"
, data = {"fields":"titles"}
, results = $("#results")
, request = function(url, data) {
  results.text("requesting " + data.fields + "...");
return $.getJSON("https://query.yahooapis.com/v1/public/yql?q="
  + "select * from json where url='" + url + $.param(data) +"'"
  + "&format=json&callback=")
};
request(url, data)
.then(function(data) {
  console.log(data)
  results.text(JSON.stringify(data.query.results.json.data, null, 4))
}, function(err) {
  console.log(err)
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<pre id="results"></pre>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

首先尝试ajax数据的类型

 dataType: 'json'

如果它没有用,那么尝试使用任何安全令牌发布方法。[或虚拟帖子值] 你可以用它。

JQuery的

 $.ajax({
    type: "GET",
    url: 'test.php',
    dataType: 'json',

    success: function(response){
        console.table([response]);
    }
 });

如果您有一个json文件,您可以使用php fn阅读它。并回应它。