Привет, я разрабатываю проект для своей домашней работы. Прежде всего, я знаю, что есть много названий по одной и той же проблеме, я смотрел на многих из них, но я не мог решить эту проблему. Если кто-то может мне помочь, я буду очень доволен.Происхождение localhost: не разрешено Access-Control-Allow-Origin
Мой Аякса вызов:
function submit(name,surname,source,destination,distance,volume,weight,price){
var xml_string = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+ "<shippingData><FIRSTNAME>" + name + "</FIRSTNAME>"+
"<LASTNAME>" + surname + "</LASTNAME>"+
"<SOURCECITY>" + source + "</SOURCECITY>"+
"<DESTINATIONCITY>" + destination + "</DESTINATIONCITY>"+
"<DISTANCE>" + distance + "</DISTANCE>"+
"<VOLUME>" + volume + "</VOLUME>"+
"<WEIGHT>" + weight + "</WEIGHT>"+
"<PRICE>" + price + "</PRICE>"+
"</shippingData>";
$.ajax({
url: 'http://localhost:8084/ShippingDataService/webresources/generic/post',
type: 'POST',
data: xml_string,
dataType: 'xml',
contentType: 'application/xml',
success: function (data) {
alert("OK");
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
}
Я должен использовать XML для передачи данных, в соответствии с правилом моей домашней работы. Моей стороны сервера такова:
@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
@Path("post")
public ShippingData postXML(ShippingData content) {
System.out.println("POST");
return content;
}
класса Почтового данные:
package ship;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class ShippingData {
public int SID;
@XmlElement (name = "FIRSTNAME")public String firstName;
@XmlElement (name = "LASTNAME")public String lastName;
@XmlElement (name = "SOURCECITY")public String sourceCity;
@XmlElement (name = "DESTINATIONCITY")public String destinationCity;
@XmlElement (name = "DISTANCE")public int distance;
@XmlElement (name = "VOLUME")public int volume;
@XmlElement (name = "WEIGHT")public int weight;
@XmlElement (name = "PRICE")public int price;
public ShippingData() {
}
public ShippingData(int SID, String firstName, String lastName, String sourceCity, String destinationCity, int distance, int volume, int weight, int price) {
this.SID = SID;
this.firstName = firstName;
this.lastName = lastName;
this.sourceCity = sourceCity;
this.destinationCity = destinationCity;
this.distance = distance;
this.volume = volume;
this.weight = weight;
this.price = price;
}
}
Я также попытался изменить АЯКС URL вызова на 'localhost:8084/ShippingDataService/webresources/generic/post'
или '/ShippingDataService/webresources/generic/post'
, но он не работает. Я получаю предупреждение об ошибке ajax, которое я определил как «POST failed». Итак, как я могу решить эту проблему?
Где ты определить свой заголовок 'Access-Control-Allow-Origin' и каково значение? – rekire
@rekire Я не определял этот заголовок, я не мог понять, где я должен его определить. – Jemo
Что вы используете на стороне сервера? WCF? – rekire