Я пытаюсь создать как серверную, так и клиентскую сторону запроса jsonp, и я не могу заставить его работать. Я просмотрел многочисленные руководства, посты в блогах и т. Д., Но почти все показывают только клиентскую часть.
Вот мой код клиента
$.ajax({
dataType: 'application/json',
data: params,
jsonp: 'jsonpCallback',
url: settings.domain + '/httpext.dll?json_cc',
success: function (data) {
//determine the return status
},
error: function (response, status, error) {
//error handling
}
}); //end ajax
прямо сейчас сервер возвращает жестко закодированное значение, подобное этому
jsonpCallback({"username":"meltingice","posts"1234});
Моя проблема в том, что я не могу получить запрос и ответ для совместной работы. В настоящее время ответ возвращает application / json, поэтому, если я изменю свой запрос, я ожидаю, что jsonp вернет ошибки с
Ресурс интерпретируется как скрипт, но передается с приложением типа MIME / json.
Uncaught ReferenceError: jsonpCallback не определен
Прежде всего, как вы видите, у меня определен jsonpCallback.
Теперь, если я изменю dataType на application / json, я получу эту ошибку
XMLHttpRequest cannot load http://myserver/httpext.dll?json_cc&sid=adsfhasjdkfhajksdghjk%3Basdhg&action=SALE&ccCard=&ccNum=&ccExMM=0&ccExYYYY=0&ccCVV2=&holdersName=&totalDue=0&dueDate=11%2F19%2F2010. Origin http://localhost:59905 is not allowed by Access-Control-Allow-Origin.
Как видите, он не помещает callback=?
в URL. Это довольно расстраивает.
Как настроить серверную часть, чтобы я мог вызывать ее с помощью jsonp? Что мне нужно для типа ответа? Как мне отформатировать возвращенные данные, чтобы мой код на стороне клиента мог получить данные обратно?