跨域请求显示数据结果

时间:2015-08-06 01:59:21

标签: javascript jquery ajax wordpress cross-domain

我在这里有WordPress的测试代码。

jQuery(document).ready(function($) {
var link = 'http://000.00.00.00/cgi-bin/test.cgi';
$("#sub").click(function() {
    $.ajax({
        type:'POST', 
        url: link,
        crossDomain: true,
        crossOrigin: true,
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'text/html'
        },
        dataType: "json",
        success: function(data) {
            console.log(JSON.stringify(data));
        }, 
        error: function(e) {
            console.log("Error: " + e);
        },
    });
});

请求似乎很好,因为当我查看我的chrome网络>标题选项卡状态代码没问题,但问题是没有数据。我应该有这样的工作输出..

{ "loyalty" : { "status" : { "rows" : "1", "sql" : "success", "result" : "ok" }, "data" : [ { "card_number" : "1410104000350018" , "card_type" : "BEAUTY ADDICT" , "first_name" : "TINA" , "middle_initial" : "M" , "last_name" : "LIM" } ] } }

1 个答案:

答案 0 :(得分:0)

您可以使用JSONP从您的javascript主机以外的其他域获取数据,这类似于打击:

$("#sub").click(function() { $.ajax({ url: link, dataType:'jsonp', jsonp:'callback', success: function(data) { console.log(JSON.stringify(data)); }, error: function(e) { console.log("Error: " + e); }, });

并且因为JSONP通过GET传输数据,所以在您的服务器端代码中,您需要从$_GET检索数据(如果您使用PHP):

$your_param = $_GET['your_param']; $callBack = $_GET['callback']; //do something .....and get $result echo($callBack . '(' .json_encode($result) . ')');