是jQuery错误还是什么?

I am investigating what can be sent and what cannot be sent through jquery ajax, because it gives me erroneous results. At first I thought it's something to do with path characters. But I found out it really isn't.

So i wrote a web service which records what has been sent and a jQuery AJAX code which sends 38 symbols. But everytime, my web service records different symbols and in different order. My code is as follows.

HTML:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <div id="original"></div>
    <div id="returnedsybmols"></div>
    <div id="returnedunicode"></div>
    <script src="Scripts/jquery-2.0.0.min.js"></script>
    <script>
        $(function () {
            var symbols = "! \" # $ % & ' ( ) * + , - . / : ; < = > ? [ \ ] ^ _ ` { | } ~ ! ¢ £ ? \\ | §";
            //var unicode ="サイトは有効なHTMLマークアップを使っていません。テキストを貼り付けてください。";

            var eachsymbol = symbols.split(' ');
            //alert(eachsymbol.length);
            for (var i = 0; i < eachsymbol.length; i++) {

            }


            eachsymbol.forEach(function (t) {
                $.ajax({
                    type: "POST",
                    url: "jsonstring.asmx/symbols",
                    data: "{'send':'" + t + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        var returnedText = msg.d;
                        $("#returnedsysmbols").append($("<p>").text(returnedText) );
                    },
                    error: function (e) {
                        alert("error");
                    }
                });
            });

        });
    </script>
</body>
</html>

ASP:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Net;
using System.IO;
using System.Text;
using System.Xml;
using System.Text.RegularExpressions;
using System.Web.Script.Services;

namespace ASP_NET
{
    /// <summary>
    /// Summary description for jsonstring
    /// </summary>
    /// 
    [System.Web.Script.Services.ScriptService]
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class jsonstring : System.Web.Services.WebService
    {

        [WebMethod]
        public string symbols(string send)
        {
            using (StreamWriter sw = File.AppendText(@"E:\My Documents\programming\exercise\ASP_NET\ASP_NET\writeout\symbols4.txt"))
            {
                sw.WriteLine(send);
            }

            return send;
        }
        [WebMethod]
        public string unicode(string send)
        {
            using (StreamWriter sw = new StreamWriter(@"E:\My Documents\programming\exercise\ASP_NET\ASP_NET\writeout\unicode.txt"))
            {
                sw.Write(send + " ");
            }

            return send;
        }
    }
}

Apparently \, ', " cannot be passed through jQuery. I tried using the escape function but it will encode all my unicode characters. Any solution for that? And can you explain why my web server records different number and different set of character each time?

run case1 " ( ) * + , - . / : ; < = # ! % & ? > [ ` ^ { ! ~ ? | £ §

run case 2 $ ( ) * + , - . / : ; < # " % ! & = > [ ] _ ` } | { ? ! ~ ¢ £ §

run case 3 ! $ & % ( ) * - + . , / < > ? ^ _ } ~ ! ¢ ? £ § |

run case 4 $ ( ) * + , - . / : ; & " # < ? ! > = _ [ ` | { } ~ £ | ! ? ¢

The $.ajax call is asynchronous. There is no guarantee that one will finish before the other, in order, when firing multiple requests simultaneously.

So no, it's not a bug.

I just realised that my webservice is not fast enough to handle all ajax query. so it doesn't return result sometimes.