And one more thing. If you define "contentType" in your ajax request you 
have to add "Content-Type" to the responses "ACCESS_CONTROL_ALLOW_HEADERS".

I think I did this in the example.

regards
Dirk

Am Montag, 7. Januar 2013 17:38:39 UTC+1 schrieb Crenshinibon:
>
> I remember one additional thing. IE8 tends to fall apart if it is unable 
> to understand the charset defined in the Content-Type. Make sure you define 
> a valid one, e.g. "utf-8".
>
> Regards,
> Dirk
>
> Am Montag, 7. Januar 2013 17:28:09 UTC+1 schrieb Crenshinibon:
>>
>> 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