我有一个网站,用Struts1,java和JSP制作,我需要从网络服务动态获取数据。我在JSP中使用AJAX调用java方法,但得到一个错误400:无论我如何尝试,都会收到错误请求。下面是我的JSP中的Javascript函数:
var panierSansFares=new Array();
function myFunction(){
$.ajax({
url: "myPath/getFares.do?method=doGet",
type: 'GET',
dataType: 'json',
contentType: "application/json; charset=utf-8", // this
data: 'panierSansFares='+JSON.stringify(panierSansFares),
success: function(res) {
alert(res);
}
});
}请注意,panierSansFares位于对象数组中,并且在调用函数时它不为空。在我的STRUTS中,动作:
<action path="/getFares"
type="myPath.GetFaresServlet"
scope="request" >
</action>最后,我的java代码:
public class GetFaresServlet extends Action {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response, ActionMapping actionMapping) throws IOException {
/**Some stuff**/
}
}我的错误400来自Struts,因为我可以在Chrome开发人员工具(网络选项卡)中看到“请求的路径无效”错误。
我试图绕过Struts,直接调用我的java作为servlet,但我做不到,我得到了error404。
我以前从未在Struts中使用过ajax,所以我缺乏找出问题所在的知识。
谢谢
发布于 2019-01-25 20:54:29
我不理解您的问题,但我遵循以下代码进行api调用
function APICall(url, methodType, data) {
var d = $.Deferred();
methodType = methodType || "GET";
data = data || null;
$.ajax({
url: url,
async: true,
method: methodType,
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response, status, request) {
d.resolve(response, status, request);
},
error: function (error) {
d.resolve(error.responseJSON);
}
});
return d.promise();
}
APICall(url, methodType, data).done(function (response, status, request) {
d.resolve(response, status, request);
}).fail(function (response) {
d.resolve(response, status, request);
});
https://stackoverflow.com/questions/54363131
复制相似问题