AJAX 调用内容类型 Application/json 未从 PHP 检索数据

AJAX call with Content Type Application/json not retrieving data from PHP

我无法从 AJAX 调用中检索 JSON 数据。

我尝试使用 PHP cURL 从不同的网页获取 JSON 数据;这成功了。 PHP 页面是从 Jquery AJAX 调用中调用的。我可以将 JSON 数据作为字符串从其中一个网站获取到 return,但不能从另一个网站获取。

jQuery

    var formData = {"data1" : a, "data2" : b, "data3" : c};

    $.ajax({
        dataType: "json",
        contentType : "application/json; charset=UTF-8",
        url: '/getjson.php',
        data : formData,
        success: function(response) {
            CurrentArray = response;
        }
    });

PHP

<?php
//select webpage to get JSON from
switch ($_GET['data1']){
    Case 1: 
        $result = get_with_curl($webpage1);//select webpage 1
    break;

    Case 2: 
        $result = get_with_curl($webpage2);//select webpage 1
    break;
}
echo $result['FILE'];
?>

1.什么有效

该命令的符号(在#列)在fiddler中显示为<>

2。什么不起作用

这里这个命令的符号(在#列)在fiddler中显示为{JSON}。

当我将数据类型修改为"Text"并将内容类型修改为"text/plain ; charset:UTF-8"时,数据(从第2点开始)以文本形式检索;但我想要对象格式的数据。

Relevant AJAX PHP issue 1

Relevant AJAX PHP issue 2

问题终于解决了, 我完全拆除了 PHP cUrl 函数,只留下基本功能。现在 JSON 数据被 returned 到 AJAX 调用。我注意到的是,在执行 cUrl 函数时出现了一些警告(如未定义的变量),但 JSON 数据仍在 PHP 函数中 returned。所以,主要你应该认为警告应该没问题。解决来自 cUrl 函数的警告后,JSON 数据作为 return 正确编辑到 AJAX 调用。换句话说,当出现 PHP 警告时,Ajax 调用不会 return 数据。