Anonymous
Почему я получаю сообщение 405 «Метод не разрешен» при выполнении запроса POST
Сообщение
Anonymous » 25 июн 2024, 05:11
Я новичок в остальных сервисах. Я пытаюсь создать службу, которая принимает строку json от клиента. Я получаю ошибку 405, когда вызываю эту службу с помощью JQuery. Ниже приведен Java-код для ws:
Вот как я отправляю запрос к веб-сервису JERSEY POST RESTFUL.
Код: Выделить всё
var orderinfo = {'ordersplitjson': ordersplitjson, 'customer_id': cust_id , 'homedelivery': homedelivery, 'seatnum' :seatnum , 'locationname':location_nam , 'rownum':rownum};
var json_data = JSON.stringify(orderinfo);
var ajaxcallquery = $.ajax({
type:'POST',
dataType: 'jsonp',
data: json_data,
contentType: "application/json; charset=utf-8",
url:url+'/OMS/oms1/orderinsertservice',
jsonpCallback:'jsonCallback',
jsonp:false,
success: function(response)
{
},
error: function(jqxhr, status, errorMsg) {
alert('Failed! ' + errorMsg);
}
});
public class OrdersInsertService
{
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces("application/json")
public String getData(OrderInfo order,@Context HttpServletResponse serverResponse)
throws JSONException
{
serverResponse.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
serverResponse.addHeader("Access-Control-Allow-Credentials", "true");
serverResponse.addHeader("Access-Control-Allow-Origin", "*");
serverResponse.addHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With");
serverResponse.addHeader("Access-Control-Max-Age", "60");
}
}
package com.util;
public class OrderInfo {
String ordersplitjson;
public String getOrdersplitjson() {
return ordersplitjson;
}
public void setOrdersplitjson(String ordersplitjson) {
this.ordersplitjson = ordersplitjson;
}
public String getCustomer_id() {
return customer_id;
}
public void setCustomer_id(String customer_id) {
this.customer_id = customer_id;
}
public String getHomedelivery() {
return homedelivery;
}
public void setHomedelivery(String homedelivery) {
this.homedelivery = homedelivery;
}
public String getSeatnum() {
return seatnum;
}
public void setSeatnum(String seatnum) {
this.seatnum = seatnum;
}
public String getLocationname() {
return locationname;
}
public void setLocationname(String locationname) {
this.locationname = locationname;
}
public String getRownum() {
return rownum;
}
public void setRownum(String rownum) {
this.rownum = rownum;
}
String customer_id;
String homedelivery;
String seatnum;
String locationname;
String rownum;
}
Кто-нибудь может подсказать мне, как это исправить
Я использую Jersey 1. Когда я использовал ваш класс, он дал мне компиляцию ошибка в затмении, как показано на картинке Хвона
Подробнее здесь:
https://stackoverflow.com/questions/278 ... st-request
1719281493
Anonymous
Я новичок в остальных сервисах. Я пытаюсь создать службу, которая принимает строку json от клиента. Я получаю ошибку 405, когда вызываю эту службу с помощью JQuery. Ниже приведен Java-код для ws: Вот как я отправляю запрос к веб-сервису JERSEY POST RESTFUL. [code]var orderinfo = {'ordersplitjson': ordersplitjson, 'customer_id': cust_id , 'homedelivery': homedelivery, 'seatnum' :seatnum , 'locationname':location_nam , 'rownum':rownum}; var json_data = JSON.stringify(orderinfo); var ajaxcallquery = $.ajax({ type:'POST', dataType: 'jsonp', data: json_data, contentType: "application/json; charset=utf-8", url:url+'/OMS/oms1/orderinsertservice', jsonpCallback:'jsonCallback', jsonp:false, success: function(response) { }, error: function(jqxhr, status, errorMsg) { alert('Failed! ' + errorMsg); } }); public class OrdersInsertService { @POST @Consumes(MediaType.APPLICATION_JSON) @Produces("application/json") public String getData(OrderInfo order,@Context HttpServletResponse serverResponse) throws JSONException { serverResponse.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); serverResponse.addHeader("Access-Control-Allow-Credentials", "true"); serverResponse.addHeader("Access-Control-Allow-Origin", "*"); serverResponse.addHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With"); serverResponse.addHeader("Access-Control-Max-Age", "60"); } } package com.util; public class OrderInfo { String ordersplitjson; public String getOrdersplitjson() { return ordersplitjson; } public void setOrdersplitjson(String ordersplitjson) { this.ordersplitjson = ordersplitjson; } public String getCustomer_id() { return customer_id; } public void setCustomer_id(String customer_id) { this.customer_id = customer_id; } public String getHomedelivery() { return homedelivery; } public void setHomedelivery(String homedelivery) { this.homedelivery = homedelivery; } public String getSeatnum() { return seatnum; } public void setSeatnum(String seatnum) { this.seatnum = seatnum; } public String getLocationname() { return locationname; } public void setLocationname(String locationname) { this.locationname = locationname; } public String getRownum() { return rownum; } public void setRownum(String rownum) { this.rownum = rownum; } String customer_id; String homedelivery; String seatnum; String locationname; String rownum; } [/code] Кто-нибудь может подсказать мне, как это исправить [img]https://i.sstatic.net/ytgOK.png[/img] Я использую Jersey 1. Когда я использовал ваш класс, он дал мне компиляцию ошибка в затмении, как показано на картинке Хвона [img]https://i.sstatic.net/B5o1O.png[/img] Подробнее здесь: [url]https://stackoverflow.com/questions/27890700/why-am-i-getting-405-method-not-allowed-while-doing-a-post-request[/url]