Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqueryajax不起作用_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript jqueryajax不起作用

Javascript jqueryajax不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,这是我调用ajax的函数: var sendAjax = function(type, data, callback) { $.ajax({ url: homepage + 'server_ajax.php', type: 'POST', data: { type: type, data: JSON.stringify(data) } }).done(function(data) { console.log(data);

这是我调用ajax的函数:

var sendAjax = function(type, data, callback) {
  $.ajax({
    url: homepage + 'server_ajax.php',
    type: 'POST',
    data: {
      type: type,
      data: JSON.stringify(data)
    }
  }).done(function(data) {
    console.log(data);
    callback(true, JSON.parse(data));
  }).fail(function() {
    console.log('NO');
    callback(false, {});
  });
};
  • 变量
    homepage
    包含有效的URL。它是同一个域,所以这不是问题所在

  • 我的
    server\u ajax.php
    只有以下内容:
    echo“awdawda wawdawd”-仅此而已(测试目的)

  • 我试图将断点放到
    $.ajax…
    和控制台日志中。第一个断点起作用,但函数
    done
    fail
    从未运行

  • 浏览器控制台中未显示任何错误

  • 我的jQuery是include(我确信),我使用
    require.js
    ,这个js文件中的所有其他东西都使用jQuery运行良好

  • 我还尝试将URL更改为无效的内容(如
    server\u ajax2.php
    ),控制台会打印错误404-就像它会那样

  • 还尝试使用
    数据类型:“json”
    或删除
    数据
    对象


  • 有什么好主意,我该怎么做?我也在这个网站上尝试了一些答案(不要将此标记为重复,我尝试了一切),但没有任何帮助。

    您是否尝试在
    服务器\u ajax.php
    文件上执行以下操作:

    echo json_encode('awdawda wawddawawd');
    header('X-PHP-Response-Code: 200', true, 200);
    

    这将响应编码为JSON,以便JavaScript代码可以读取内容,并为页面提供标准的成功标题(
    200 OK
    ),以便
    $。ajax
    代码知道查询成功。

    在这里尝试一下,因为获取数据可能是您的成功-失败功能

    $.ajax({
      url: homepage + 'server_ajax.php',
      type: 'POST',
      dataType : 'json',
      contentType: 'text/plain',
      data: {
        type: type,
        data: JSON.stringify(data)
      },
      success: function(data) {
        console.log(data);
        callback(true, JSON.parse(data));
       },
       error: function() {
         console.log('NO');
         callback(false, {});
       }
    });
    

    你能告诉我确切的问题是什么吗?当您调用此函数时,ajax调用是否失败或浏览器控制台中是否存在任何错误?您是否将我的问题读到了最后?打印
    console.log(数据)完成后。而且,浏览器控制台中没有错误,这是完全清楚的。哇,多么礼貌的海报啊。让我更想帮助你!如果您使用的是ChromeOpenDeveloperTools(F12),请在运行ajax调用之前打开网络选项卡。执行ajax调用,您将在下表中看到一个新条目。您应该能够看到ajax调用本身的状态以及从服务器收到的响应。您确定在代码中的某个地方您甚至调用了
    sendAjax
    函数吗?抱歉,这不是答案,只是猜测。谢谢,但没有帮助。成功,错误,从jQuery 1.8开始,不推荐使用完整函数。它们最终将被移除。Done、fail和always应该用在它们的位置上。正如@Jon所说的,这些函数被弃用。事实上,这和我的一样。但看看问题的评论,我已经解决了。