Hi,

never heard of the AXON module. Like I said, the example above is from a 
current project which contacts a Java (actually: Xtend) backend. There, I 
use the "simpleframework" as a "server". No node.js. And I think it has 
nothing to do with it.

I did the same with node.js and can't remember doing anything very special 
with it. To get cross site scripting working with IE8 (our corporate 
default web server, by the way) you have to stick to the following things, 
I am not sure if all are mandatory, though:

   - The server has to always respond with the ACCESS_CONTROL_ALLOW_HEADERS 
   / ORIGIN / METHODS headers properly defined. The IE8 doesn't send a OPTIONS 
   preliminary request.
   - Much depends on the dataType of the request. If you use "script" or 
   "jsonp" you get through without any complaint. But jQuery always uses GET 
   in this cases.
   - If you want or must use POST, DELETE, PUT, etc. methods. You have to 
   set the dataType to "json". But than you have to define: 
   "jQuery.support.cors=true" somewhere. And your clients get the annoying 
   message I mentioned above. But only once per web page.

Here is some working server code, using proper HTTP methods and the 
datatype "json":
https://gist.github.com/4476236

and the client:
https://gist.github.com/4476269

and the HTML file pulling everything together:
https://gist.github.com/4476305

(IE8, jQuery 1.8.3, json2.js)

Regards
Dirk

Am Montag, 7. Januar 2013 02:39:43 UTC+1 schrieb 曾漢煒:
>
> Hello Crenshinibon
>
> I try to rewrite the node.js to use the less module than i found my ajax 
> can work on ie9 
>
> but no I found another problem is the module named "AXON" the 
> message-oriented 
> socket library
>
> our team use this to push and pull the data, I think maybe this is the 
> problem because i just use express module it can work successfully
>
> so do you have use the AXON module and should i setting anything to make 
> sure the socket can get the ajax post data from ie9 ?
>
> Crenshinibon於 2013年1月4日星期五UTC+8下午7時59分01秒寫道:
>>
>> Hello,
>>
>> I actually had/have the same problem. It is not node.js at the backend, 
>> but getting the f***** IE 8 to send an ajax request to a different target 
>> is a mess, regardless of the receiver.
>>
>> Your response looks good, quite similar to mine. My jQuery.ajax looks 
>> like this:
>>
>> jQuery.ajax({
>>
>>       url: planview_bridge_host + 'order_number',
>>
>>       dataType: 'json',
>>
>>       data: "{\"code\": \"" + id + "\", \"order_number\": \"" + order + 
>> "\"}",
>>
>>       headers: {
>>
>>         x_auth_user: 'dirk',
>>
>>         x_auth_password: 'password',
>>
>>         x_method: 'DELETE'
>>
>>       },
>>
>>       contentType: 'application/json; charset=UTF-8',
>>
>>       type: 'POST',
>>
>>       success: function(data) {
>>
>>         if (data) {
>>
>>           setToNein();
>>
>>           return updateOrderNumber('undef');
>>
>>         } else {
>>
>>             return alert('Falsche Daten empfangen: ' + 
>> JSON.stringify(data));
>>
>>         }
>>
>>       },
>>
>>       error: function(jqXHR, textStatus, e) {
>>           alert(JSON.stringify(jqXHR));
>>           setToJa();
>>
>>           return alert('Verbindungsproblem: ' + JSON.stringify(e));
>>       }
>>     });
>> (The JSON object is not present in IE8 by default, I added the json2.js 
>> by Crockford to the page)
>>
>> Actually I added: "jQuery.support.cors = true" in my client script. And 
>> read somewhere that some browsers are unable to send requests with methods 
>> other than POST and GET. So I reverted to POST everything and send the 
>> method really meant as a custom header field ("x_method").
>>
>> It works despite the fact that when a user for the first time tries to 
>> send a request, he is asked if he truly want to send data to a different 
>> host.
>>
>> Hope it helps a little.
>>
>> Regards
>> Dirk
>>
>> Am Freitag, 4. Januar 2013 03:48:43 UTC+1 schrieb [email protected]:
>>>
>>> Hello Jacob
>>>
>>> we have setting the response header like this
>>>
>>> app.all('*', function(req, res, next) {
>>>     res.header("Access-Control-Allow-Origin", "*");
>>>     res.header("Access-Control-Allow-Headers", "X-Requested-With");
>>>     
>>> res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
>>>     res.header("X-Powered-By",' 3.2.1')
>>>     res.header("Content-Type", "application/json;charset=utf-8");
>>>     if(req.method==='OPTIONS')
>>>       res.send(200);
>>>     else
>>>       next();
>>> });
>>>
>>> so is there anything we have to setting on node.js server?
>>>
>>> and how could i check the second request can be received successfully? 
>>>
>>> or did you have any ie ajax success sample can show me?  because it is 
>>> really strange 
>>>
>>> thanks a lot Jacob~
>>>
>>>
>>> Jacob於 2013年1月4日星期五UTC+8上午1時51分14秒寫道:
>>>>
>>>> When doing a cross domain POST, the browser usually send two HTTP 
>>>> requests. The first with HTTP method OPTIONS before sending the actual 
>>>> request. Your server has to flag the request as okay before the browser 
>>>> proceeds.
>>>>
>>>> Your server might be receiving the options request only, which would 
>>>> have no body.
>>>>
>>>>
>>>> On Thu, Jan 3, 2013 at 8:03 AM, Tiger Nassau Inc <[email protected]
>>>> > wrote:
>>>>
>>>>> You may have cors (cross origin) problems - its kind if tricky but you 
>>>>> probsbly need a header to allow - search on this
>>>>>
>>>>> Sent from my LG Mobile
>>>>>
>>>>> [email protected] wrote:
>>>>>
>>>>> >hello
>>>>> >
>>>>> >if we use chrome or firefox we can't successfully get the jquery ajax 
>>>>> post
>>>>> >data,
>>>>> >
>>>>> >but we found if we use ie9 or ie8 to send POST data by jquery ajax ,
>>>>> >node.js just receive empty body {}
>>>>> >
>>>>> >even we change the header like content-type to application/json or
>>>>> >text/plain and Accept value it still didn't work
>>>>> >
>>>>> >so is here anyone have the same problem or have any solution , please 
>>>>> help
>>>>> >me  thanks a lot
>>>>> >
>>>>> >i paste my code below
>>>>> >
>>>>> >-------------------------------------------
>>>>> >
>>>>> >if(jQuery.browser.msie && window.XDomainRequest) {
>>>>> >
>>>>> >                       //var 
>>>>> data=JSON.stringify({'property_id':'50da64f65d396b1e48000001','name':'222','start_date':'2012/11/11'});
>>>>> >               var data='property_id=50da64f65d396b1e48000001&id=222';
>>>>> >
>>>>> >               var xdr = new XDomainRequest();
>>>>> >               xdr.contentType= 'text/plain';
>>>>> >
>>>>> >               xdr.onload = function (e) {
>>>>> >            var data = $.parseJSON(xdr.responseText);
>>>>> >            if (data == null || typeof (data) == 'undefined') {
>>>>> >                alert(data)
>>>>> >            }
>>>>> >            //success
>>>>> >               };
>>>>> >                        xdr.onerror = function (e) {
>>>>> >                //alert(e);
>>>>> >               }
>>>>> >
>>>>> >                       xdr.open("POST", url);
>>>>> >                       xdr.send(data);
>>>>> >
>>>>> >                        }
>>>>> >                        else
>>>>> >                        {
>>>>> >                               
>>>>> $.post(url,{'property_id':'111','name':'222','start_date':'2012/11/11'}, 
>>>>> function(data) {
>>>>> >                           alert(data)
>>>>> >                         });
>>>>> >                       }
>>>>> >
>>>>> >
>>>>> >---------------------------------------------------
>>>>> >
>>>>> >
>>>>> >$.ajax({
>>>>> >       beforeSend: function(xhrObj){
>>>>> >               
>>>>>  xhrObj.setRequestHeader("Content-Type","application/json");
>>>>> >                xhrObj.setRequestHeader("Accept","application/json");
>>>>> >        }
>>>>> >  url: url,
>>>>> >  type: "POST",
>>>>> >  data: JSON.stringify({'property_id' : 'test'}),
>>>>> >  headers : {
>>>>> >                'Accept' : 'application/json',
>>>>> >                'Content-Type' : 'application/x-www-form-urlencoded'
>>>>> >            },
>>>>> >            dataType: "json",
>>>>> >  success: function(data){
>>>>> >     alert(data);
>>>>> >  }
>>>>> >});
>>>>> >
>>>>> >--
>>>>> >Job Board: http://jobs.nodejs.org/
>>>>> >Posting guidelines: 
>>>>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>>>>> >You received this message because you are subscribed to the Google
>>>>> >Groups "nodejs" group.
>>>>> >To post to this group, send email to [email protected]
>>>>> >To unsubscribe from this group, send email to
>>>>> >[email protected]
>>>>> >For more options, visit this group at
>>>>> >http://groups.google.com/group/nodejs?hl=en?hl=en
>>>>>
>>>>> --
>>>>> Job Board: http://jobs.nodejs.org/
>>>>> Posting guidelines: 
>>>>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "nodejs" group.
>>>>> To post to this group, send email to [email protected]
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>>>>
>>>>
>>>>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to