2013-03-27 2 views
3

Я пытаюсь получить сообщение AJAX с перекрестным доменом для работы с использованием библиотеки easyXdm.Перекрестный домен Сообщение AJAX с использованием easyXdm

В моей локальной среде разработки У меня есть два участка:

 
1. http://localhost/MySite/ws/easyXDM/cors/index.html (EasyXdm file) 
2. http://localhost/MyClientSite/TestPage.html (AJAX post from here) 

TestPage.html (AJAX Post)

var rpc = new easyXDM.Rpc({ 
     remote: "http://localhost/MySite/ws/easyXDM/cors/index.html" 
    }, 
    { 
     remote: { 
      request: {} 
     } 
    }); 

rpc.request({ 
     url: "http://localhost/MySite/ws/MyService.asmx/DoSomething", 
     method: "POST", 
     data: jsonData 
    }, function(response) { 
     console.log(JSON.parse(response.data)); 

     $('#thanksDiv').fadeIn(2000, function() { 
      $('#thanksDiv').fadeOut(4000); 
     }); 
    }); 

Когда я пост AJAX я получаю следующее в моем браузера консоль:

easyXDM present on 'http://localhost/MySite/ws/easyXDM/cors/index.html?xdm_e=http%3A%2F%2Flocalhost%2FMyClientSite%2FTestPage.html&xdm_c=default884&xdm_p=4 
native JSON found 
easyXDM.Rpc: constructor 
{Private}: preparing transport stack 
{Private}: using parameters from query 
easyXDM.stack.SameOriginTransport: constructor 
easyXDM.stack.QueueBehavior: constructor 
easyXDM.stack.RpcBehavior: init 
{Private}: firing dom_onReady 
... deferred messages ... 
easyXDM.Rpc: constructor 
{Private}: preparing transport stack 
{Private}: using parameters from query 
easyXDM.stack.SameOriginTransport: constructor 
easyXDM.stack.QueueBehavior: constructor 
easyXDM.stack.RpcBehavior: init 
... end of deferred messages ... 
easyXDM.stack.SameOriginTransport: init 
easyXDM.stack.RpcBehavior: received request to execute method request using callback id 1 
easyXDM.stack.RpcBehavior: requested to execute procedure request 
easyXDM.stack.QueueBehavior: removing myself from the stack 

Проблема: Веб-служба никогда не получает данные. Это очевидно, так как моя функция успешной публикации AJAX должна показывать thanksDiv, а также запись должна быть создана в * базе данных.

Примечание: Я заменяю свой существующий почтовый код AJAX, поскольку мне нужно использовать easyXdm для преодоления проблемы с Internet Explorer 6 и 7 на сайте клиента.

Дополнительная информация: Файл-структура, где мои easyXdm файлы расположены следующим образом:

/ws/easyXDM/easyXDM.debug.js 
/ws/easyXDM/easyXdm.swf 
/ws/easyXDM/json2.js 
/ws/easyXDM/name.html 
/ws/easyXDM/cors/index.html 
+0

есть так мало людей, которые работали с easyXDM , Можете ли вы посмотреть http://stackoverflow.com/questions/27203172/easyxdm-download-files-from-3rd-party-service, пожалуйста? –

+0

@V_B Оба клиента и сервер должны использовать EasyXDM для успешной работы. – Seany84

ответ

1

Мой веб-сервис бросает ошибку сервера HTTP 500, как jsonData не отправляется правильно через easyXdm ,

данные JSON выглядит так, прежде чем он был отправлен:

{ "param1": "value1", "param2": "значение2" ......}

Однако веб-служба получала данные по одному символу в строке, например

{ 
" 
p 
a 
r 
a 
m 
" 
.... 

Я не сериализую данные json до моего поста. Таким образом, на основе исходного кода, который я разместил в оригинальный вопрос:

Чтобы получить его работу, я изменил линию

data: jsonData 

в

data: JSON.parse(jsonData) 
Смежные вопросы