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
