【问题标题】:ajax post return the htmlajax post返回html
【发布时间】:2015-06-01 15:06:08
【问题描述】:

我有这个 ajax 函数(参考下文)

$.ajax({
    url: "processor.php",
    type:"POST",
    data: { 'id' : "itemid, 'itemname' : itemname, 'itemdesc' : itemdesc" } ,
    success:function(e){
        if(($.trim(e) == "success")){
            alert("success");
        }else{
            alert(e);
        }  
    },error:function(){
        alert("critical error");
    }
});

假设我已经有了 jquery 的链接脚本以及在 ajax 函数内部的 data 参数上声明的那些变量的内容。现在我有一个processor.php(参考下文)

//this is the processor php
echo "success";

所以基于上述参考,ajax 函数向 processor.php 提交一个 post 请求,然后 processor.php 将响应“成功”字符串,如声明的“回声成功”但发生的情况是它没有得到成功响应,而是弹出当前页面上的整个 html 标签(警报),为什么?任何想法、线索、推荐、建议将不胜感激。谢谢。

PS:我知道响应不成功,但为什么它会弹出(警告)当前页面中的整个 html 标签?

【问题讨论】:

  • 我想发生了一些重定向。如果您直接在浏览器中访问processor.php,会发生什么?
  • 成功回显“成功”。
  • 你的 php 输出一个格式化的 html?发送一个带有“success”作为属性的ajax,并解析json(你不再需要修剪了)
  • 在 processor.php 内部是 " 我使用 trim 只是为了让我得到准确的响应(成功),没有任何空格。
  • @cox:我什至去掉了装饰,只留下“alert(e);”但可悲的是,它给了我相同的弹出窗口(警报中的所有 html)

标签: javascript jquery ajax


【解决方案1】:

试试这个,我认为你传递参数的方式是错误的。我只是创建一个示例,根据你的要求更改此代码。

$.ajax({
    url: "script.php",
    type:"POST",
    data: { id : itemid, itemname : itemname, itemdesc : itemdesc },
    success: function(data, status, settings)  
        {  
           alert(The request URL and DATA);
        }  
        ,
        error: function(ajaxrequest, ajaxOptions, thrownError)  
        {  
             alert("error");
        }  
});

【讨论】:

    【解决方案2】:

    发布的数据中存在语法错误,您可能重定向到新页面而不是 processor.php。

    编辑

    还要确保processor.php只返回“成功”这个词,并且页面源中没有更多的html标签。

    语法错误:

    data: { 'id' : "itemid, 'itemname' : itemname, 'itemdesc' : itemdesc" }
    

    建议更改:

    data: { id : itemid, itemname : itemname, itemdesc : itemdesc }
    

    【讨论】:

    • 仍然有同样的问题,我什至尝试将帖子类型更改为 GET 并将整个脚本更改为 $(document).ready(function(){ alert("asdsad"); }) ;只是为了确保我的 jquery 工作正常。
    • 请检查我的答案中添加的段落。您收到什么 HTML 内容?这些标签是在processor.php 的源代码中还是当前页面的未知标签或内容?
    【解决方案3】:

    我之前有过这样的经历,检查您的文件夹和文件结构,如果您正在运行服务器端脚本(例如 php)或与数据库通信,请检查您的虚拟主机配置。

    【讨论】:

    • 谢谢!这是一个虚拟主机配置问题,这就是我错过了我的 ajax 功能的原因。
    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2016-11-29
    相关资源
    最近更新 更多