7***@qq.com
7***@qq.com
  • 发布:2018-01-07 19:46
  • 更新:2018-10-17 14:57
  • 阅读:3174

mui.ajax调用javaweb后端的接口,只能通过拼接URL地址实现吗?

分类:MUI

首先谢谢各位点进来查看我的提问。
近期才接触的MUI,感觉很好用。但是在做项目的时候遇到一个问题,望能解答。
例如网站登录时,简单的form表单

<form action="login" method="post">  
  <p>username: <input type="text" name="username" /></p>  
  <p>password: <input type="text" name="password" /></p>  
  <input type="submit" value="Submit" />  
</form>

点击提交时,向java后台传参数是这样的:

http://1.2.3.4/java_api/login?username=admin&password=admin

那么我在使用mui.ajax时,参照官方的写法:

mui.ajax("http://1.2.3.4/java_api/login", {  
    headers: {  
        'Content-Type': 'application/json'  
    },  
    processData: false,  
    data: {  
        username: "admin",  
        password: "admin",  
    },  
    dataType: 'json',  
    type: 'post',  
    timeout: 10000,  
    success: function(data) {  
        console.log(data);  
    },  
    error: function(xhr, type, errorThrown) {  
        mui.alert("【" + xhr + "】【" + type + "】【" + errorThrown + "】");  
    }  
});

登录会提示:"【[object object]】【error】【Internal Server Error】",但是网站使用时是正常的。

我在问答这边有看到说是可以尝试用这种格式传递参数


 data: JSON.stringify({  
        username: "admin",  
        password: "admin"  
}),

还是不行,最后只能使用拼接url的方式进行参数传递。

var username= document.getElementById("username").value;  
var password= document.getElementById("password").value;  
mui.ajax("http://1.2.3.4/java_api/login?username="+username+"&password="+password, {  
//中间省略  
});

需要传递的参数及数据少的时候还好,多的话不仔细就会出错,有什么办法可以解决吗?
最后再次感谢!

2018-01-07 19:46 负责人:无 分享
已邀请:
DCloud_UNI_CHB

DCloud_UNI_CHB

应该是请求方法的问题:

http://1.2.3.4/java_api/login?username=admin&password=admin

这种方式为GET方式,但你的ajax调用方式为POST。

  • 7***@qq.com (作者)

    谢谢回答!我测试了,post和get都不行,都一样的

    2018-01-07 21:03

5***@qq.com

5***@qq.com

1.使用postman或者其他发送请求模拟器进行模拟访问,需要指定Headers为Content-Type:application/x-www-form-urlencoded;指定body类型为x-www-form-urlencoded类型.

2.使用ajax提交的post请求,需要指定ContentType: 为 application/x-www-form-urlencoded.(接收不到application/json,实在想接可以用@RequestBody)

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