Ajax 调用不只返回“data:.


Ajax call not returning only "data:

我正在尝试进行一个简单的ajax调用来测试我是否连接到php文件。我试图做一个db_connect,但是当它没有返回任何东西时,我把它简化为一个带有简单回声的空白 php 文件。但是,我的 ajax 函数中的 alert() 返回整个 php 页面。我看到了一个相同主题的问题,但是,我的 php 不包含 html。因此,该解决方案将不起作用。任何关于我出错的建议将不胜感激。

这是jquery:

$(function(){
    var request6 = $.ajax({ 
        url: "indexDb.php", 
        async: true, 
        type: "POST", 
        data: {func: 2}, 
        dataType: "html" 
    }).success(function(data) { 
        alert(data);
    })//end success
});

.php:

<?
$value = $_POST['func'];
switch($value){     
    case 2:
        echo "made it";
        break;          
}
?>

尝试这样的事情

将 ? 更改为 ?php

<?php
$value = $_POST['func'];
switch($value){
    case 2:
        echo "made it";
        break;
}
?>

默认情况下,短标记处于禁用状态。

但是,要启用短标记,请启用 php.ini 文件中称为 short_open_tag 的设置。

如果 URL 未指定内容类型,则dataType: "html"默认返回整个响应正文。鉴于您说此行为不是您想要的行为,我假设您的 php 文件正在返回某种 JSON 字符串。如果为真,将dataType更改为json将允许脚本使用 php 输出,而不管响应的内容类型如何:

$(function(){
    var request6 = $.ajax({ 
        url: "indexDb.php", 
        async: true, 
        type: "POST", 
        data: {func: 2}, 
        dataType: "json" 
    }).done(function(data) { 
        alert(data);
    })//end success
});

请尝试使用

$.ajax({  
          type:"POST",  
          url:"indexDb.php",
          dataType:"html",
          data:{func: 2},
          cache:false,
          success:function(data)
          { 
              alert(data);
          }  
       });

尝试将数据类型:"html"更改为数据类型:"文本"。希望这会有所帮助。