javascript - 无法捕获通过 Jquery Ajax 发送的 $_POST/$_GET

标签 javascript php jquery ajax

请参阅@jpossi 答案。

我还没有接受答案,以便有人可以阐明可能存在的问题,尽管这有点牵强,因为原始的 POST 代码不存在。

好吧,这行得通,我只需注释掉processData: false。但由于实际函数使用 POST 方法,我尝试回到原始代码: var data = new FormData ( ); 保留 processData: false 并更改为 method : 'GET' 猜猜看,它起作用了...我简单地回到了原始的 POST 代码,取消注释几行并注释出几行。发生什么事了?

<小时/>

这是代码,它非常简单,但不知何故我无法捕获 Ajax 函数发送的 $_POST 数据。事实上,我无法发送正确的帖子数据。

这里我尝试使用 GET 选项,这是结果。

/**Javascript**/
var data = new FormData (  );
data.append ( 'unique_id',  unique_id  ); // This I checked, it is correct.
$.ajax ( {
    method : 'GET', url : scriptUrl, data : data, cache : false, processData: false, contentType: false, dataType : 'json',
    success : function ( data, textStatus, jqXHR )
    {
        if ( typeof data.error === 'undefined' ) { alert ( data ); }
        else { alert ( 'cccsdsd' ); }
    },
    error : function ( jqXHR, textStatus, errorThrown )
    {
        alert ( textStatus );// This fires with Parseerror.
    }
} );

/**PHP**/
if ( $this->input->get ( 'unique_id' ) ) // I am working with codeigniter.
{
    $data ['message'] = 'My Message';
    echo json_encode ( $data );
}
else 
{
    echo 'Something Else';
}

Ajax 永远不会成功,它总是抛出 parseerror

Firebug GET url 结果如下:http://localhost/mysite/Cart [object%20FormData]&_=1451738500443

服务器发送的响应是Something Else

我做错了什么?

最佳答案

jQuery.ajax() 预期为“数据”:PlainObject 或 String 或 Array

FormData 可用于 POST 请求。 (这是由浏览器处理的,而不是 jQuery)。 FormData 无法转换为 GET-String,因为它旨在处理文件上传等情况。

您应该将数据更改为:

var data = {'unique_id': unique_id};

或从 GET 更改为 POST

或者(截至评论)将 processData 更改为 true

关于javascript - 无法捕获通过 Jquery Ajax 发送的 $_POST/$_GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34566139/

相关文章:

javascript - Jquery确认框

javascript - 将 float 的 div 粘贴到另一个元素的当前位置

javascript - 按特定顺序推送对象

php - Codeigniter 查询生成器具有带有 IN 语句的子句

php - 在 PHP 中使用 foreach 对数组中的时间进行排序

php - 信息未提交到数据库

jquery - 获取 div + dropdownList 所选 Item 中的所有文本

javascript - Python Selenium : How to navigate Javascript based navigation

html - hide 设置为 false 后聚焦输入

javascript - 如何制作多种颜色的指示器