使用jQuery休息调用

时间:2012-05-04 04:07:48

标签: jquery ajax rest get

我正在尝试使用jQuery从以下URL获取返回的信息:

Var URL = http://getdeeplink.linksynergy.com/createcustomlink.shtml?token=2e9830b7ed11c5dee96dd4b4a9e83da216c9d583ae1e617bcafdd6eb004e3c86&mid=13508&murl=http://itunes.apple.com/us/music-video/if-you-think-this-song-is/id413824018?uo=4

我已经尝试了下面概述的两种方法,但在这两种情况下,程序只运行代码块,就像没有发生任何事情一样。谁能说出我做错了什么?

  $.ajax({ 
             type: "GET",
             dataType: "jsonp",
             url: URL,
             success: function(data){       
                alert(data);
             }
         });

第二种方法:

     $.get(URL, function(data) {
       alert('Load was performed.');
       alert(data);
      });

2 个答案:

答案 0 :(得分:4)

首先,如果您请求网址的服务器域与您网页的域名不同,那么您可能会遇到same-origin-limitations

其次,如果它不是同一个来源并且您正在尝试使用JSONP(看起来可能是这样),那么您的服务器将需要专门支持JSONP并将结果打包为JSONP格式,表示将结果格式化为可执行脚本,并且还意味着尊重URL上的callback=xxxx查询参数。

第三,你在问题中添加的这段javascript看起来像是缺少网址引用的内容,使其成为合法的javascript,var全部为小写:

var URL = "http://getdeeplink.linksynergy.com/createcustomlink.shtml?token=2e9830b7ed11c5dee96dd4b4a9e83da216c9d583ae1e617bcafdd6eb004e3c86&mid=13508&murl=http://itunes.apple.com/us/music-video/if-you-think-this-song-is/id413824018?uo=4";

为了进一步调试,我建议您为ajax调用附加一个错误处理程序,看看是否提供了任何进一步的信息。如果由于同源问题而阻塞了某些内容,或者您​​只是有其他脚本错误导致脚本停止执行,那么您的浏览器错误控制台或调试控制台也可能会为您提供有用的消息。

答案 1 :(得分:0)

由于相同的原点限制,您无法执行此类的ajax调用。 你需要做的是设置一个服务器端页面,你的java脚本将在'getdeeplink.php'上执行ajax调用(我假设你是用PHP做的)

你的javascript

$.get('getdeeplink.php',data,function(){.....});

它在getdeeplink.php中执行REST调用并回显对ajax处理程序的响应

getdeeplink.php

$rest_response = file_get_contents('http://getdeeplink.linksynergy.com/createcustomlink.shtml?token=2e9830b7ed11c5dee96dd4b4a9e83da216c9d583ae1e617bcafdd6eb004e3c86&mid=13508&murl=http://itunes.apple.com/us/music-video/if-you-think-this-song-is/id413824018?uo=4');
echo json_encode($rest_response); //send the result to the ajax handler