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