跨域请求显示数据结果

Cross Domain Request display data results

本文关键字:数据 结果 显示 请求      更新时间:2023-09-26

我这里有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网络>标题选项卡状态代码是OK的,但问题是没有数据。我应该有一个像这样的工作输出…

{ "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" } ] } }

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

$("#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) . ')');