Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jsonp/jquery触发函数_Javascript_Jquery_Jsonp - Fatal编程技术网

Javascript 如何使用jsonp/jquery触发函数

Javascript 如何使用jsonp/jquery触发函数,javascript,jquery,jsonp,Javascript,Jquery,Jsonp,我得到了这个函数: var current_url=window.location.href; $.ajax({url: 'http://api.apps.com/html/'+appid, data: {url:current_url}, dataType: 'jsonp', timeout: 10000, jsonp: "set_url_target", success: function(data) { c

我得到了这个函数:

 var current_url=window.location.href;
$.ajax({url:      'http://api.apps.com/html/'+appid,
      data:      {url:current_url},
      dataType: 'jsonp',
      timeout:  10000,
      jsonp: "set_url_target",
      success: function(data) { console.log(data); },
       error: function(jqXHR, textStatus, errorThrown) { console.log(errorThrown); console.log(textStatus); }
      }).done(function() { 
          console.log("Message has been complete!!");
        });
我想要的是在上触发这个函数(注意它是一个不同的域)


到目前为止,set_url_目标没有被触发,我没有得到任何输出到控制台的信息,没有错误或什么都没有。。为什么?

如果外部应用程序不在您的控制之下,恐怕您无法做很多事情,因为您需要更新服务器发送给客户端的响应,才能成功使用JSONP

因此,您有两种选择: a) 在应用程序的服务器端进行调用,并将其返回给客户端 b) 或者,为了完全实现客户端,您可以使用yahoo pipes或其他服务将
json
响应转换为有效的
jsonp
响应

下面是一个关于如何使用yahoo管道的示例:


我对许可证不太确定,请检查许可证,以及是否存在相关的API/带宽成本。让我知道它对您的作用。

试试这个,注意
jsonp
jsonpCallback
属性

    var current_url=window.location.href;
    $.ajax({url:      'http://api.apps.com/html/'+appid,
            data:      {url:current_url},
            dataType: 'jsonp',
            timeout:  10000,
            jsonp : false,
            jsonpCallback: "set_url_target",
       success: function(data) { console.log(data); },
       error: function(jqXHR, textStatus, errorThrown) { console.log(errorThrown); console.log(textStatus); }
  }).done(function() { 
      console.log("Message has been complete!!");
    });

有关这方面的更多信息,

所以基本上解决方案是使用代理!??我试图用jsonp模拟html5消息传递,但为什么它不起作用呢?但我想做的是做一个客户对客户的请求。。所以你说这是不可能的…为什么?不可能。为什么jsonp是假的,它是否告诉它不要返回jsonp?set_url_目标位于不同域的不同脚本上,而不是我的脚本上。。我想你误解了这个问题
jsonp
设置为false以覆盖
回调
名称。
    var current_url=window.location.href;
    $.ajax({url:      'http://api.apps.com/html/'+appid,
            data:      {url:current_url},
            dataType: 'jsonp',
            timeout:  10000,
            jsonp : false,
            jsonpCallback: "set_url_target",
       success: function(data) { console.log(data); },
       error: function(jqXHR, textStatus, errorThrown) { console.log(errorThrown); console.log(textStatus); }
  }).done(function() { 
      console.log("Message has been complete!!");
    });