2010-01-08 6 views
0

Я использую:Ajax Jquery Get, Post Mothed вопрос

function AuthenticateUser(alias, password) { 
     //$(document).unbind('keypress'); 
     $("#Login").unbind("click"); 
     $.getJSON(RPC_URL + "?c=User&password=" + urlencode(password) + "&alias=" + alias + "&m=login&jsoncallback=?", function(data){ 
      CheckAuthentication(data,alias,password); 
     }); 

    } 

Прямо сейчас ...

Но вместо этого, я хочу использовать POST, а не GET. Я пробовал $ .postJSON и $ .post вместо $ .getJSON здесь, но когда я использую postJSON или post, по какой-то причине мои данные даже не отправляются. Я видел это в своих данных Темпера. Ничего не произошло в Temper Data.

Кто-то сказал мне, что это может быть проблема с перекрестным доменом. Потому что я отправляю данные с моего виртуального.cloudbeta.com на virtual.app.cloud.com.

Что мне делать?

Я хочу, чтобы на этом было простое исправление. Я не могу хранить данные на одном сервере или иметь прокси-сервер. Один из моих друзей предложил мне это посмотреть: http://alvinabad.wordpress.com/2009/02/13/feb13/

Но я не мог понять, как я могу использовать его в своей проблеме.

Plz, было бы очень приятно помочь вам в этом.

С уважением Zeeshan

+1

Какой стимул использовать POST через GET? –

+0

Я отправляю пароль ... так что мне нужно использовать POST .. Цель безопасности –

+0

Это не более безопасно, чем GET. Данные не передаются только через URL-адрес запроса. Вместо этого оно передается через тело запроса. Все могут понюхать его. – BalusC

ответ

2

Правильный синтаксис для использования .post и изменить тип возврата (четвёртые пары) к "JSON", как за the docs for .post:

var postData = { c: "User", 
       password: password, 
       alias: alias, 
       m: "login" }; 
$.post(RPC_URL, postData, function (data) { 
    CheckAuthentication(data,alias,password); 
}, "json"); 

Не котировка верьте, что данные для сообщения - это то, как вы хотите отформатировать их, но я надеюсь, что вы получите эту идею.

Что касается междоменного домена, я не знаю, есть ли способ обойти его, когда вы проходите через домены. Субдомены в порядке, но домены могут быть заблокированы.

Хотя действительно имейте в виду, что положить его в сообщение не поможет вашей безопасности. Любой, у кого есть firebug, может видеть данные сообщения. Если вы беспокоитесь о безопасности, зашифруйте пароль (хэш) перед отправкой. Если GET работает для вас, используйте это, а не просто переключайтесь на POST, он ничего не покупает (если, конечно, вы не используете SSL для POST, тогда это будет более безопасно).

+0

Я тоже буду использовать SSL ...спасибо –

+0

@ Zeeshan метод, представленный Parrots, будет работать и через SSL, если страница, на которой работает код, также отправляется через SSL. –

+0

Но все же я столкнулся с некоторой проблемой. Если вы видите мой код, у меня есть «jsoncallback =?» в конце или в моем url. но я пытаюсь сделать то же самое в своем посте, как jsoncallback =? также попробовал jsoncallback = "?" ... тогда вся моя функция не работает. кроме jsoncallback, он работает. что мне делать ?? –

1

использованием jQuery.ajax() вместо и specifiy DATATYPE, как и JSON типа как POST

см ... JQUERY Ref

Что касается вопроса Междоменного вашего лучшим ставка заключалась бы в том, чтобы получить их все в одном домене (они могут быть разными поддоменами) и установить document.domain = "cloud.com";

Можете ли вы настроить их таким образом? betavirtual.cloud.com и virtual.cloud.com

+0

Нет, я не могу иметь тот же домен !!! –