【问题标题】:Rest call using jQuery使用 jQuery 进行休息调用
【发布时间】:2012-05-04 04:07:47
【问题描述】:

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

【问题讨论】:

  • 在浏览器中转到该链接时,它输出的只是我输入的网址。您确定您使用的网址正确吗?我假设您正在尝试获取一些实际数据。
  • 您没有收到警报?
  • 在 url 字符串周围加上“引号”
  • ^ 和 var 都是小写。

标签: jquery ajax rest get


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    由于同源限制,您不能执行这样的 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
    

    【讨论】:

      猜你喜欢
      • 2017-04-06
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      相关资源
      最近更新 更多