0

我正在尝试使用 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);
      });
4

2 回答 2

4

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

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

第三,您在问题中输入的这段 javascript 看起来好像在 URL 周围缺少引号以使其成为合法的 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 调用附加一个错误处理程序,看看它是否提供了任何进一步的信息。如果某些内容由于同源问题而被阻止,或者您只是有其他脚本错误正在停止执行您的脚本,那么您的浏览器错误控制台或调试控制台也可能会为您提供有用的消息。

于 2012-05-04T04:38:30.333 回答
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
于 2012-05-04T05:17:15.927 回答