Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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 无法使用AJAX localhost请求html内容_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 无法使用AJAX localhost请求html内容

Javascript 无法使用AJAX localhost请求html内容,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试图用Ajax将HTML代码嵌入到div元素中。(同样,我们使用iframe)。我首先在本地主机上测试这一点,以避免同源策略问题 web应用程序正在wamp服务器上运行 有两个文件: 带有Ajax请求的脚本(index.html): $.ajax({ 键入:“POST”, 网址:'http://localhost/site.php', 数据类型:“text/html;charset=utf-8”, 成功:功能(响应){ $('#testajax').html(响应); } }); 包含我打

我试图用Ajax将HTML代码嵌入到
div
元素中。(同样,我们使用iframe)。我首先在本地主机上测试这一点,以避免同源策略问题

web应用程序正在wamp服务器上运行

有两个文件:

  • 带有Ajax请求的脚本(index.html):
  • 
    $.ajax({
    键入:“POST”,
    网址:'http://localhost/site.php',
    数据类型:“text/html;charset=utf-8”,
    成功:功能(响应){
    $('#testajax').html(响应);
    }
    });
    
  • 包含我打算检索的html代码的文件(site.php):
  • 
    这是一个标题
    这是我的主要内容。
    这是一个侧边栏
    这是我的页脚
    

    浏览器上没有任何日志或网络错误。。。所以我看不出这种情况有什么不对。为什么从来没有执行过Ajax成功?

    您应该回显html。您的php文件没有向客户端发送任何内容

    <?php 
    header('Access-Control-Allow-Origin: *');
    header("content-type:text/html; charset=utf-8");
    
    echo '<div id="header">This is a header</div><div id="main"><div id="content">This is my main content.</div><div id="sidebar">This is a sidebar</div></div><div id="footer">This is my footer</div>';
    
    ?>
    

    您应该回显html。您的php文件没有向客户端发送任何内容

    <?php 
    header('Access-Control-Allow-Origin: *');
    header("content-type:text/html; charset=utf-8");
    
    echo '<div id="header">This is a header</div><div id="main"><div id="content">This is my main content.</div><div id="sidebar">This is a sidebar</div></div><div id="footer">This is my footer</div>';
    
    ?>
    

    简化事情怎么样

      $(document).ready(function() {
           $('#testajax').load('http://localhost/site.php', function() {
              alert('Load was performed.');
           });
        });
    

    简化事情怎么样

      $(document).ready(function() {
           $('#testajax').load('http://localhost/site.php', function() {
              alert('Load was performed.');
           });
        });
    

    使用jQuery3只是提醒一下,这可能是您的问题

    :从jQuery 3.0开始,jqXHR.success()、jqXHR.error()和jqXHR.complete()回调将被删除。您可以改用jqXHR.done()、jqXHR.fail()和jqXHR.always()

    如果这不起作用,我会:

  • 删除额外的doctype、html、head和body标记(因为浏览器或jQuery可能不喜欢这些标记)
  • 然后添加一个console.log(响应);祝你成功/完成任务

  • 使用jQuery3只是提醒一下,这可能是您的问题

    :从jQuery 3.0开始,jqXHR.success()、jqXHR.error()和jqXHR.complete()回调将被删除。您可以改用jqXHR.done()、jqXHR.fail()和jqXHR.always()

    如果这不起作用,我会:

  • 删除额外的doctype、html、head和body标记(因为浏览器或jQuery可能不喜欢这些标记)
  • 然后添加一个console.log(响应);祝你成功/完成任务

  • 我花了很长时间测试它,因为我在开发人员控制台或网络探查器上没有错误

    由于真正的代码非常大,我制作了一个片段来回答这个问题,而这个片段实际上没有任何错误

    因此,我真正的代码在使用Ajax函数的文件中没有包含任何jQuery。它实际上被注入到其他PHP文件中的
    元素中

    另外,我没有在日志上看到错误,因为我有FireBug插件,它目前是遗留的:),并且工作不好


    参考:。

    我花了很长时间测试它,因为我在开发人员控制台或网络探查器上没有错误

    由于真正的代码非常大,我制作了一个片段来回答这个问题,而这个片段实际上没有任何错误

    因此,我真正的代码在使用Ajax函数的文件中没有包含任何jQuery。它实际上被注入到其他PHP文件中的
    元素中

    另外,我没有在日志上看到错误,因为我有FireBug插件,它目前是遗留的:),并且工作不好



    参考:。

    尝试不带HTML、Body和Head标记的echo诚实地说,在尝试用php输出它之前,我使用纯HTML文本。但这两种方式都不起作用。仅使用php添加标题并尝试使用。请使用浏览器开发工具“网络面板”查看请求的响应情况。浏览器或jQuery可能不喜欢额外的doctype、html、head和body标记。尝试只提供body标签中的内容。然后添加一个console.log(响应);为了你的成功。。。看看你得到了什么?只是提醒一下,如果你使用jQuery 3,这可能是你的问题::从jQuery 3.0开始,jqXHR.success()、jqXHR.error()和jqXHR.complete()回调被删除。您可以使用jqXHR.done()、jqXHR.fail()和jqXHR.always()来代替。请尝试不使用HTML、Body和Head标记的echo。老实说,在尝试使用php输出之前,我使用纯HTML文本进行了此操作。但这两种方式都不起作用。仅使用php添加标题并尝试使用。请使用浏览器开发工具“网络面板”查看请求的响应情况。浏览器或jQuery可能不喜欢额外的doctype、html、head和body标记。尝试只提供body标签中的内容。然后添加一个console.log(响应);为了你的成功。。。看看你得到了什么?只是提醒一下,如果你使用jQuery 3,这可能是你的问题::从jQuery 3.0开始,jqXHR.success()、jqXHR.error()和jqXHR.complete()回调被删除。您可以使用jqXHR.done()、jqXHR.fail()和jqXHR.always()来代替。。。任何超出
    标记的内容都是正常输出,无论如何都会被发送。谢谢您的回答。这种方法也不起作用。@Roizpi请检查您的开发工具。检查网络请求。回显HTML是一种糟糕的做法,因为您会丢失所有intellisense、格式,并且必须混合或转义引号。胡说八道。。。任何超出
    标记的内容都是正常输出,无论如何都会被发送。谢谢您的回答。这种方法也不起作用。@Roizpi请检查您的开发工具。检查网络请求。回显HTML是一种不好的做法,因为您会丢失所有intellisense、格式,并且必须混合或转义引号。谢谢您的回答。我看你的代码有道理。我确实有ajax请求方面的经验,但出于某种原因,这也不起作用。控制台中没有错误吗?这是非常直接的,所以我宁愿检查原始页面输出…最后,我的
    .ajax()
    调用没有工作,但是您的方法
    .load()
    工作得很好。谢谢您的回答。我看你的代码有道理。我确实有ajax请求方面的经验,但出于某种原因,这也不起作用。控制台中没有错误吗?这是非常直接的,所以我宁愿检查原始页面输出…最后,我的
    .ajax()
    调用没有工作,但是你的方法
    .load()
    工作得很好。:)我没有真正完整的
    字符串,我