2013-10-24 6 views
0

У меня есть яваскрипт код, как показано ниже кодаJquery Ajax вызовы всегда возвращает ошибку

   var xReg = '<region><width>' + $("#txtWidth").val() + '</width> <height>' + $("#txtHeight").val() + '</height><float>' + $("#floats").val() + '</float><contenttype>' + $("#contenttype").val() + '</contenttype><style>' + rgnStyle + '</style></region>'; 
       $.ajax({ 
        type: "POST", 
        url: "myurl/addRegion", 
        data: "{pubId: '" + Number($("#pubs").val()) + "',section: '" + $("#sections option:selected").text() + "',layoutW: '" + Number($("#txtLayoutW").val()) + "',layoutH: '" + Number($("#txtLayoutH").val()) + "',bSubReg: '" + Boolean($("#chkSubRegion").is(':checked')) + "',parentRegId: '" + Number(parentRgn) + "',sXmlRegion: '" + xReg.toString() + "'}", 
        contentType: "application/json; charset=utf-8", 
        async: false, 
        dataType: "json", 
        success: function (result) { 
         document.body.style.cursor = 'pointer'; 
         if (result.d == -1) { 
          $("#errMsg").text("Failed to create new region"); 
         } 
         else { 
          if ($("#chkSubRegion").is(':checked')) { 
           $("#regions").append("<option class='ddindent' value='" + result.d + "'>REGION-" + result.d.toString() + "</option>"); 
          } else { 
           $("#subregions").append("<option class='ddindent' value='" + result.d + "'>SUBREGION-" + result.d.toString() + "</option>"); 
          } 
         } 
        }, 
        error: function (result) { 
         if (result.status == 200 && result.statusText == 'OK') { 
          if ($("#chkSubRegion").is(':checked')) { 
           $("#regions").append("<option class='ddindent' value='" + result.d + "'>REGION-" + result.d.toString() + "</option>"); 
          } else { 
           $("#subregions").append("<option class='ddindent' value='" + result.d + "'>SUBREGION-" + result.d.toString() + "</option>"); 
          } 
         } 
         else { 
          alert("FAILED : " + result.status + ' ' + result.statusText); 
         } 
        }, 
        async: true 
       }); 

сервера, как показано ниже

[WebMethod] 
public int addRegion(int pubId, string section, int layoutW, int layoutH, bool bSubReg, int parentRegId, string sXmlRegion) 
{ 
    string path = Server.MapPath("~"); 
    path = Path.Combine(path, "Published"); 
    path = Path.Combine(path, pubId.ToString()); 
    path = Path.Combine(path, section); 
    XmlDocument doc = new XmlDocument(); 
    int rgnCount = 0; 
    try 
    { 
     if (!Directory.Exists(path)) 
     { 
      Directory.CreateDirectory(path); 
     } 
     path = Path.Combine(path, "layout.xml"); 
     if (!File.Exists(path)) 
     { 
      XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null); 
      doc.AppendChild(docNode); 
      XmlNode templateNode = doc.CreateElement("layout"); 
      doc.AppendChild(templateNode); 
      XmlNode xNodeW = doc.CreateElement("width"); 
      xNodeW.AppendChild(doc.CreateTextNode(layoutW.ToString())); 
      XmlNode xNodeH = doc.CreateElement("height"); 
      xNodeH.AppendChild(doc.CreateTextNode(layoutH.ToString())); 
     } 
     else 
     { 
      doc.Load(path); 
      doc.DocumentElement.SelectSingleNode("/layout/width").InnerText = layoutW.ToString(); 
      doc.DocumentElement.SelectSingleNode("/layout/height").InnerText = layoutH.ToString(); 
     } 
     XmlElement root = doc.DocumentElement; 
     XmlNode xParent = root; 
     if (bSubReg) 
     { 
      xParent = root.SelectSingleNode("/layout/region[id='" + parentRegId.ToString() + "']"); 
      rgnCount = xParent.SelectNodes("/region").Count; 
     } 
     else 
     { 
      rgnCount = root.SelectNodes("/Layout/region").Count; 
     } 

     rgnCount++; 

     XmlDocumentFragment docFragment = doc.CreateDocumentFragment(); 
     docFragment.InnerXml = sXmlRegion; 
     XmlNode xID = doc.CreateElement("id"); 
     xID.AppendChild(doc.CreateTextNode(rgnCount.ToString())); 
     docFragment.FirstChild.AppendChild(xID); 
     xParent.AppendChild(docFragment); 


     doc.Save(path); 
     return rgnCount; 
    } 
    catch (Exception eX) 
    { 
     return -1; 
    } 
} 

Вызов собирается на сервер от клиента. И никаких проблем, которые я мог бы найти в коде сервера до последнего оператора возврата, пока я его отлаживал. В отладке javascript я обнаружил, что после вызова ajax всегда происходит функция обратного вызова ошибки. Может кто-нибудь предложить, что не так с кодом.

Thanks & Цените свое время.

+1

Какая ошибка? – Barmar

+0

Функция успеха jquery ajax зависит от успешного кода ответа HTTP с сервера. В коде сервера я не вижу, чтобы он повторял любые заголовки или текст любого типа, возвращая только значение. Вы можете отправлять сообщения на сервер напрямую без вызова ajax? –

+0

Я получаю неопределенную ошибку. – Naga

ответ

0

Я нашел ошибку в моем коде есть проблема с ниже строками кода

  }, 
      async: true 

в конце ошибки: функция обратного вызова

Я удалил строки асинхр: истинные и он работал

Смежные вопросы