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