【问题标题】:AJAX call with Content Type Application/json not retrieving data from PHP内容类型应用程序/json 的 AJAX 调用未从 PHP 检索数据
【发布时间】:2015-03-03 00:26:12
【问题描述】:

我在从 AJAX 调用中检索 JSON 数据时遇到问题。

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

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.什么有效

  • 对执行 CURL 调用的 PHP 的 AJAX 调用
  • Curls 发回一个 JSON 字符串,内容类型为:text/html; 字符集:UTF-8
  • 此 JSON 字符串在 AJAX 调用中检索回

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

2。什么不起作用

  • 在另一个站点上执行此操作时,CURL 会返回一个 JSON 字符串,但 PHP 中检索 curl 命令的 Content-Type 现在是 applcation/json;字符集;UTF-8。当我在 PHP 中回显此内容时,该对象将不会在 AJAX 中检索。

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

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

Relevant AJAX PHP issue 1

Relevant AJAX PHP issue 2

【问题讨论】:

  • 请添加您的 php 代码。
  • 你似乎有三个不同的脚本(一个 JavaScript 脚本,一个使用 CURL 发出 HTTP 请求的 PHP 脚本和另一个响应第一个 PHP 脚本的 PHP 脚本 - 我不知道 JS正在与第一个或第二个 PHP 脚本对话)
  • 您的 JavaScript 没有多大意义。您正在尝试设置 Content-Type 请求标头,但您正在发出 GET 请求(因此没有描述类型的内容)并且您没有将数据格式化为 JSON。
  • 添加类型:"POST",在php中使用$_POST
  • @DilipGodhani — $_POST 不会为 JSON 请求填充。

标签: php jquery ajax json curl


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2015-04-21
    • 1970-01-01
    • 2018-09-05
    相关资源
    最近更新 更多