threetree
threetree
  • 发布:2015-03-13 15:19
  • 更新:2017-10-17 08:37
  • 阅读:9694

ajax只能发起GET请求,而不能发POST请求,否则报500错误

分类:HBuilder
<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="utf-8" />  
        <title></title>  
    </head>  
    <body>  
        <h1>我是大标题1</h1>  
        <p>abc</p>  
        <script src="js/jquery-1.11.2.min.js" type="text/javascript" charset="utf-8"></script>  
        <script type="text/javascript">  
            $.ajax({  
                type: "GET", // GET方式不会报错  
                url: "tmpl.html",  
                datdType: "html",  
                data: {  
                    "username": "username",  
                    "password": "password"  
                },  

                success: function(data) {  
                    $("p").append(data);  
                }  
            });       
        </script>  
    </body>  
</html>
<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="utf-8" />  
        <title></title>  
    </head>  
    <body>  
        <h1>我是大标题1</h1>  
        <p>abc</p>  
        <script src="js/jquery-1.11.2.min.js" type="text/javascript" charset="utf-8"></script>  
        <script type="text/javascript">  
            $.ajax({  
                type: "GET", // 虽然是GET方式,但是data数据是JSON数据的序列化,也会报错  
                url: "tmpl.html",  
                datdType: "html",  
                data: "{%22username%22:%22username%22,%22password%22:%22password%22}",  

                success: function(data) {  
                    $("p").append(data);  
                }  
            });       
        </script>  
    </body>  
</html>
<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="utf-8" />  
        <title></title>  
    </head>  
    <body>  
        <h1>我是大标题1</h1>  
        <p>abc</p>  
        <script src="js/jquery-1.11.2.min.js" type="text/javascript" charset="utf-8"></script>  
        <script type="text/javascript">  
            $.ajax({  
                type: "POST", // POST方式一定会报错  
                url: "tmpl.html",  
                datdType: "html",  
                data: {  
                    "username": "username",  
                    "password": "password"  
                },  

                success: function(data) {  
                    $("p").append(data);  
                }  
            });       
        </script>  
    </body>  
</html>

(1)所报错误都是一样的:Failed to load resource: the server responded with a status of 500 (Internal Server Error)
(2)我是前端工程师,只做前台,不写后台代码的,也就是没有J2EE或者PHP什么的。
(3)经过测试,如果有后台代码,所有情况都不会报错的。

2015-03-13 15:19 负责人:无 分享
已邀请:
豆豆xiao宽

豆豆xiao宽 - 静静的看着这个世界,最后终于疯了

500不是服务器内部错误吗,你从你后台代码找找原因,get和post发送数据的编码方式貌似也有区别

枫桥居APP

枫桥居APP

你自己api内部错误

hyhezhen

hyhezhen

近几天我也用到这个,至少在目前的hbuilder版本上调试没有问题
function testToken()
{
mui.ajax('http://XX.XX.XX:8080/login.php',{
data:{
username:$("#username").val(),
password:$("#password").val(),
},
dataType:'json',//服务器返回json格式数据
type:'post',//HTTP请求类型
timeout:5000,//超时时间设置为10秒;
success:function(data){
//服务器返回响应,根据响应结果,分析是否登录成功;
//console.log('ok '+JSON.stringify(data));
console.log("登录成功");
},
error:function(xhr,type,errorThrown){
//异常处理;
console.log(type);
console.log("出错"+type);
}
});
}

这手机端的写法没问题。需要注意服务器端,按照php语法,最后2句应该这样
$data 是个json对象

$tmp= json_encode($data);
echo $callback . '(' . $tmp.')';

流浪男

流浪男

你POST一个 datdType: "html", 这个格式的, 谁能收得到,拼写错误

1***@qq.com

1***@qq.com

问题解决了吗??

  • 五叶神

    post报500就是你的接口有问题,跟APP没有关系的,用接口测试工具试下,你的接口肯定也不行,http://www.atool.org/httptest.php

    2017-10-16 16:24

skysowe

skysowe

datdType: "html",

该问题目前已经被锁定, 无法添加新回复