Мы опубликовали API-интерфейс json для обмена данными между несколькими доменами. Мы предоставляем обратный вызов, который позволяет возвращать любые GET с удаленных сайтов в виде дополненного json.
GET http://mysite.com/jsonapi/object?callback=?
Возвращает:? ({‘SomeKey’: ’someData’})
Теперь все это прекрасно работает, когда мы ПОЛУЧАЕМ данные с удаленных сайтов, но в тот момент, когда я пытаюсь выполнить удаленный JQuery POST для API для извлечения данных JSON, я получаю нулевой возврат в Firefox. Я могу без проблем опубликовать форму с удаленного сайта в json API и получить обратно данные json. Проблема возникает только с JQuery POST. Я полагаю, что это своего рода защита от межсайтовых скриптов, которую я не совсем понимаю. Когда я отправляю данные POST JQuery на URL-адрес на том же сайте, с которого я загружаю страницу POSTing JQuery, у меня не возникает проблема.
Как сделать сообщение jquery на удаленном сайте и обработать данные json, которые я получил? Я могу добавить обратный вызов или внести другие изменения в возвращаемые данные json, и я не беспокоюсь о безопасности. Я просто хочу, чтобы jquery опубликовал форму, а не передавал параметры как GET.
Как бы я изменил это для JQuery POST для удаленного сайта?
<form method="post" action="http://www.remoteSite.com" name="input">
Quick form to test update public data:<br>
New data:<input type="text" value="New Data" name="newData"><br>
<input type="submit" value="Submit">
</form>
<script src="_js/jquery-1.4.2.min.js" type="text/javascript"> </script>
<script type="text/javascript">
$("form").submit(function(e){
var form = $(this);
$.ajax({
url : form.attr('action'),
method: form.attr('method'),
data : form.serialize(), // data to be submitted
success: function(response){
alert(response); // do what you like with the response
}
});
return false;
});
</script>
В настоящее время это возвращает [Приложение JavaScript] в качестве предупреждения, а не ожидаемые данные, возвращаемые json.