JQuery AJAX запрос с использованием параметров вместо GET / POST - только на iPad - PullRequest
3 голосов
/ 01 марта 2012

У меня есть сайт в разработке, который использует много вызовов AJAX. Я использую ярлыки - .get (), .post () и .load ()

На настольном компьютере все отлично работает с любым браузером, который я тестировал. Но когда я тестирую с помощью iPad, все вызовы AJAX не выполняются. Проверка журнала сервера показывает, что они используют OPTIONS вместо GET / POST - пока это звучит как вопросы, на которые даны ответы, НО:

а) это ТОЛЬКО происходит с iPad Mobile Safari, НЕ с Safari на рабочем столе или любым другим браузером на рабочем столе б) Я трижды проверил, что я использую тот же домен, без поддоменов, без http / https и т. д.

Понятия не имею, что здесь происходит, так что если кто-то может помочь?

1 Ответ

1 голос
/ 21 сентября 2012

У меня была такая же проблема с проектом в JQuery / .NET WCF, где Firefox использовал глагол OPTIONS, чтобы узнать, какие глаголы разрешены (получить, опубликовать, удалить, поместить).

Так что у меня это былоФайл global.asax.cs в методе «Application_BeginRequest», который наследуется всеми службами REST.Поэтому, когда вызывается служба REST, она сначала проходит через этот метод:

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

if (HttpContext.Current.Request.HttpMethod == "OPTIONS") {
    HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache");
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, x-requested-with");
    HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
    HttpContext.Current.Response.End();
}

Когда используется глагол «OPTIONS», глобальная страница возвращает разрешенные параметры.Затем браузер отправляет запрос POST / DELETE / GET / PUT.

Я полагаю, вам нужно сделать что-то подобное.Какую технику вы используете для своего сайта?

Кстати, если у вас есть лучший способ справиться с этой проблемой, я тоже буду рад ее использовать:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...