JQuery.ajax 错误 400 错误请求 Struts
JQuery.ajax error 400 bad request with Struts
我有一个网站,由 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 开发人员工具(网络选项卡)中看到 "Invalid path was requested" 错误。
我试图绕过 Struts 并直接将我的 java 作为 servlet 调用,但我做不到,出现错误 404。
我以前从未将 ajax 与 Struts 一起使用过,所以我缺乏知识来找出问题所在。
谢谢
我不明白你的问题,但我按照此代码进行 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);
});
我有一个网站,由 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 开发人员工具(网络选项卡)中看到 "Invalid path was requested" 错误。
我试图绕过 Struts 并直接将我的 java 作为 servlet 调用,但我做不到,出现错误 404。
我以前从未将 ajax 与 Struts 一起使用过,所以我缺乏知识来找出问题所在。
谢谢
我不明白你的问题,但我按照此代码进行 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);
});