Вы используете HTML-код с другого хоста, отличного от запрашиваемого хоста.Из-за этого вы блокируетесь той же политикой происхождения .
Одним из способов решения этой проблемы является использование JSONP .Это позволяет выполнять межсайтовые запросы.
В JSON возвращается:
{a: 5, b: 6}
В JSONP JSON заключен в вызов функции, поэтому он становится сценарием, а неobject.
callback({a: 5, b: 6})
Вам необходимо отредактировать службу REST, чтобы она принимала параметр с именем callback
, а затем использовать значение этого параметра в качестве имени функции.Вы также должны изменить content-type
на application/javascript
.
Например: http://localhost:8080/restws/json/product/get?callback=process
должен вывести:
process({a: 5, b: 6})
В вашем JavaScript вам нужно будет указать jQuery использовать JSONP,Для этого вам нужно добавить ?callback=?
к URL.
$.getJSON("http://localhost:8080/restws/json/product/get?callback=?",
function(data) {
alert(data);
});
Если вы используете $.ajax
, он автоматически добавит ?callback=?
, если вы скажете ему использовать jsonp
.
$.ajax({
type: "GET",
dataType: "jsonp",
url: "http://localhost:8080/restws/json/product/get",
success: function(data){
alert(data);
}
});