2010-04-23 3 views
0

Что может помешать AJAX-вызову от работы на хост-сервере, когда он отлично работает на локальном хосте? Я попытался вернуть ошибку из вызова AJAX, но все, что я получаю, является «undefined». Я не думаю, что метод фактической страницы вызывается, поскольку в моем журнале не добавляется информация (и я явно добавил вызов). Я не могу воспроизвести проблему на моей локальной машине, так кто-нибудь знает возможные области, которые я должен изучить?Вызов AJAX работает на локальном компьютере, а не на хосте

Благодаря

+0

В серийной версии, которую вы пытаетесь сделать вызов междоменное? –

+0

Привет. Нет, все размещено в моем домене. .aspx вызывает веб-метод в этом конкретном коде. – XSL

ответ

0

Мне удалось это исправить. Возникла проблема с запуском IIS7 в интегрированном режиме. Я переместил все свои модули с и до моего (также в раздел)

Надеюсь, что это поможет кому-то еще.

More info

0

Что URL в вашем браузере, и что URL бьет ваш вызов Ajax? У браузеров есть ограничения безопасности, которые не допускают перекрестные вызовы AJAX. Так, например, если я загрузке локального файла:

http://localhost:20080/myCustomPage.html 

и в пределах этой страницы, я делаю AJAX вызов

http://search.twitter.com/search?q=test 

я хотел бы получить предупреждение безопасности из браузера. В зависимости от вашего браузера это может проявляться в предупреждающем значке в нижнем углу (IE) или в журнале javascript (firefox).

Существует один способ обойти это в ОДНОМ конкретном случае. Этот случай представляет собой любой запрос GET. Для этого вместо создания «ajax» вы включаете тег. Затем этот тег скрипта будет считан и загружен. Ловушка здесь, теперь вызов должен включать метод «обратного вызова», который вы можете реализовать на своей стороне, который вызывается с результатом вызова.

Так вместо ответа, как:

{ 
    "first_name": "peter", 
    "last_name": "parker" 
} 

вам нужно будет вернуть

myCallBackFunction({ 
    "first_name": "peter", 
    "last_name": "parker" 
}); 

Этот пример использует JSON, но вы можете легко использовать XML, HTML или любой другой формат результата, как пока функция вызывается.

myCallbackFunction("INSERT RESPONSE TEXT HERE") 

Этого метод обычно реферируемый как JSONP и, к счастью, реализован в общих яваскрипте библиотек, как JQuery с точки зрения клиента. Если вы контролируете сервер, вам нужно будет жестко закодировать оболочку callBackFunction или выставить параметр, который позволяет клиенту установить его. И, к сожалению, если вы не владеете библиотекой, вы не можете сделать ничего, кроме тех случаев, когда владелец сервиса уже предоставляет эту функцию. К счастью, большинство сервисов Web 2.0, которые вы бы делали такие вещи, уже реализовали эту функцию.

+0

Спасибо за ответ. Мой url имеет «http://www.mydomain.com/mypage.aspx», а страница aspx имеет либо http://www.mydomain.com/mypage.aspx/mymethod, либо просто mypage.aspx/mymethod (я пробовал оба). Я запускаю Chrome, но даже в IE нет ошибок. – XSL

Смежные вопросы