【问题标题】:JQuery Ajax Post - JSON works with GET but NOT with POSTJQuery Ajax Post - JSON 适用于 GET 但不适用于 POST
【发布时间】:2009-10-29 16:19:51
【问题描述】:

我正在尝试使用 jquery ajax 将 json 字符串发送到服务器,如下所示。使用 GET 时它可以正确解码,但使用 POST 时它不起作用。有什么建议吗?

    $.ajax({
    type: "GET",
        url: "../pssops21/php/insertTempTransData.php",
        data: 'data=' + strSelectedItems,
        dataType: 'json',
        async: false,
        success: handleresponse                 
    }); 

服务器端php:

$json = json_decode(stripslashes($_POST['data']), true);

在 cmets 之后,我意识到这不是 ajax 发布问题,而是解码问题。

谢谢。

【问题讨论】:

  • 你的服务器端 php 代码是什么样的?
  • 检查 print_r($_POST) 是否产生任何结果
  • 不是方法调用不匹配。
  • 是的,它会产生结果:[[{\"TransactionID\":\"00423\",\"OrderID\":\"000937\",\"Transactio etc

标签: php jquery json


【解决方案1】:

我认为在服务器端你需要有 $_POST['strSelectedItems'] 而不是 $_POST['data'] .. 或者做一个 print_r($_POST) 以获得更清晰的图片,我认为 js 是好的,但我不是 jquery 专家。

【讨论】:

  • 执行 print_r($_POST) 以查看按照上述建议发送的内容
  • 抱歉,发帖错误。我后来改了变量名。
  • @Natkeeran ...如果您使用 firefox ,我建议您查看 firebug 控制台并查看正在发送的参数类型。如果我理解正确你已经在接收端尝试过 print_r($_POST) 吗?
  • 是的,萤火虫发布了这个:数据 [[{"TransactionID":"00425", "EndDate":"2009-12-31"}]] 我意识到解码方面的问题,因为由于某种原因,json_decode 与 GET 一起使用,而不是与预期的 POST 一起使用。
  • 能否请您发布 print_r($_POST) 的准确完整输出
猜你喜欢
  • 1970-01-01
  • 2020-06-30
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 2017-01-25
  • 2020-05-26
  • 2021-06-22
相关资源
最近更新 更多