【问题标题】:Send data to remote server using jsonp使用 jsonp 向远程服务器发送数据
【发布时间】:2014-01-21 22:04:07
【问题描述】:

这是我的代码: 服务器A

$(function() {

        var diffDomainUrl = 'http://domain_B.com/analtyics/cookie.php?jsoncallback=mycallback';

    $('.idlink').on('click', function() {
        $.ajax({
            url: diffDomainUrl,
            dataType: 'jsonp',
            data: {},
            success: function (data, textStatus) {
                console.log(textStatus);
                console.log(data);
            },
            jsonpCallback: 'mycallback'
        });
    });

});

和服务器 B

<?php
$_GET['jsoncallback'];
if(isset($_GET['jsoncallback']))
{
setcookie("T_LNG",$_GET['jsoncallback'],strtotime('+30 days'));

echo $_COOKIE['T_LNG']."Welcome";
} ?>

在这段代码中我什么也没得到。我不知道它是否有效或我的方法是错误的。

【问题讨论】:

  • 你的 url 已经包含回调所以不要在 ajax 中设置它删除并尝试删除这个jsonpCallback: 'mycallback'
  • 你的正确,它工作正常。
  • 我添加了这个作为答案接受它兄弟:)

标签: javascript php jquery jsonp


【解决方案1】:

您的 url 已经包含回调所以不要在 ajax 中设置它删除并尝试删除这个jsonpCallback: 'mycallback'

试试这个

$(function() {

        var diffDomainUrl = 'http://domain_B.com/analtyics/cookie.php?jsoncallback=mycallback';

    $('.idlink').on('click', function() {
        $.ajax({
            url: diffDomainUrl,
            dataType: 'jsonp',
            data: {},
            success: function (data, textStatus) {
                console.log(textStatus);
                console.log(data);
            }

        });
    });

});

【讨论】:

    【解决方案2】:

    更改
    $_GET['jsoncallback'];

    $_GET['callback'];
    

    【讨论】:

      【解决方案3】:

      根据 jQuery 文档

       "jsonp": Loads in a JSON block using JSONP. Adds an extra "?callback=?" to the end of 
      your URL to specify the callback. Disables caching by appending a query string parameter,  "_=[TIMESTAMP]", to the URL unless the cache option is set to true.
      

      试试

      $(function() {
      
              var diffDomainUrl = 'http://domain_B.com/analtyics/cookie.php?callback=?';
      
          $('.idlink').on('click', function() {
              $.ajax({
                  url: diffDomainUrl,
                  type: "POST",//if not specified get is the default
                  dataType: 'jsonp',
                  data: {}, //send data to server as key value pair if any eg {id:20}
                  jsonpCallback: 'mycallback'
              });
          });
      
      });
      

      还有你的回调函数

       function mycallback(responseJSON){
             ........
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-30
        • 1970-01-01
        • 1970-01-01
        • 2012-05-04
        • 2019-10-24
        • 2012-11-29
        • 2014-01-31
        • 1970-01-01
        相关资源
        最近更新 更多