Я пытаюсь сделать запрос POST jQuery с локально размещенной веб-страницы на локально размещенный сервер.
Мой сервер слушает Когда я отправляю POST-запрос с помощью моего HTTP-клиента, я получаю ответ 201 created
, как и ожидал .
Теперь я пытаюсь отправить тот же запрос с помощью jQuery:
function postAppointment() {
$.post({
url:'http://localhost:8085/appointments',
data: appointmentFactory(),
crossDomain: true,
headers: {
'Content-Type' : 'application/json',
'Accept' : 'application/json'
}
});
}
Я получаю следующее сообщение об ошибке из консоли ошибок Safari:
[Error] Failed to load resource: the server responded with a status of 501 (Not Implemented) ([object Object], line 0)
Однако я не уверен, что сервер на самом деле отвечает, потому что я пытался отправить запросы на netcat
, и он не распечатывает никаких запросов, а если я использую HTTP-клиент с графическим интерфейсом, netcat
распечатывает запросы.
Итак... мне кажется, что это проблема на стороне клиента, поскольку моя серверная служба подтверждена работой моего HTTP-клиента с графическим интерфейсом. Я подумал, что, возможно, эта проблема связана с тем, как я обслуживаю свою страницу, поэтому я попытался обслуживать страницу:
- Открытие прямо из Finder
- Открытие через ссылку IDE, которая, похоже, запускает сервер (JetBrains WebStorm)
python -m SimpleHTTPServer
Есть ли недостающая конфигурация на стороне клиента, которая мешает мне отправить запрос?
Спасибо за любую помощь.
И если вам интересно, appointmentFactory()
возвращается
Object
eventName: "Fiesta Forever"
phoneNumber: "13125555555"
time: Thu Dec 18 2014 17:15:00 GMT-0600 (CST)
__proto__: Object
И я также отправил запрос, проанализировав объект с помощью JSON.stringify()
.... Я не уверен, что это делается автоматически.
Я также попробовал запрос через Desktop Chrome и получил следующую дополнительную информацию:
Еще раз спасибо за любую помощь.
-Блейк
data
не может быть просто объектом JavaScript, иначе jQuery закодирует его, используя кодировку URL (name=value&...
) — он не проверяет тип содержимого. Вам нужно сериализовать его в строку JSON вручную. - person Cameron   schedule 19.12.2014