2009-07-02 4 views
1

У меня есть случай, когда я хочу отправить форму и получить ответ от этой отправки, потому что на основе этого ответа «по крайней мере, отправьте полный ответ», я сделаю другую логику.Как отобразить форму отправки ответа «другой домен»?

Что отличает мое дело от того, что эта форма находится в домене, и я отправляю ее другому доменному имени, поэтому не могу использовать ajax submit из-за проблем с перекрестным сценарием.

Кто-нибудь сталкивается с подобным случаем и имеет решение?

Я использовал JQuery код для отправки формы:

$('#MyForm').submit(); 

формы код:

<form target="MyIframe" name="MyForm" id="MyForm" 
    action="http://mydomain/page.aspx" method="post"> </form> 

ответ

2

Для междоменной связи нет простой клиентской возможности для получения результатов. Требуется поддержка на стороне сервера - предоставление дополнительных услуг, которые вы можете нанести клиенту (например, путем внедрения элемента на страницу).

Это позволяет вам делать запросы GET на сервер и получать результат как JSON. Один из способов сделать это будет:

  1. Клиент создает <script src="http://otherdomain.com/gettoken"></script>
  2. Это возвращает что-то вроде

    вар myToken = "abc123";

  3. Это значение вставляется в форму, которую затем представленный на тот же сервер
  4. на сервер хранит результаты в виде под ключ указанного маркера
  5. Клиент создает <script src="http://otherdomain.com/getresult?token=ABC123"></script>
  6. сервер делает выборку form results for ABC123 и возвращается тогда как JSON
+0

Ваша идея замечательная и отлично работает, у меня есть еще одна проблема, которая не позволит мне использовать эту идею, что мои строки запросов слишком длинны :( –

0

Вам нужно сделать запрос на стороне сервера ...

Dim Response as String 

Using Client as New System.Net.WebClient() 
    Response = Client.UploadData("key=value") 
End Using 

Затем, если вы хотите использовать AJAX, вы укажете его этому локальному обработчику, чтобы обойти проблему междоменного доступа.

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