2012-07-17 69 views
4

返回一個字符串,當我從我的代碼執行以下錯誤:微軟JScript運行時錯誤:無法完成,由於操作錯誤80020101.錯誤錯誤阿賈克斯問題80020101從請求

以下鏈接爲i#2發現了什麼東西:Ajax request problem: error 80020101

var div = $("<div class='modal'>").html($(result.getWebFormDesignFieldContentsResult)); 

在信息傳遞,result.getWebFormDesignFieldContentsResult是HTML和JavaScript的長字符串未解析成DOM呢。我發現這很奇怪,因爲我有一天工作,然後試圖添加額外的功能....打破它。 :(

中傳遞的字符串是相當大的,而且是值得的喜歡:

<div>input tags for filtering</div> 
<select><option></option>...[150 option tags]... </select> 
<anchor tag to return contents> 
<script type = "text/javascript"> 
    ...stuff fires related to the above items... 
</script> 

我想它是一種具有以作爲字符串傳遞的信息的問題被放到div標籤因爲它可能不喜歡腳本標記

其他人已經完成了這個,或者什麼給我一些指針如何處理這個?我可能想創建一個字符串對象,然後相應地分解內容和只在html中放入html,然後以不同風格處理js。

結果字符串(result.getWebFormDesignFieldContentsResult)

您也可點擊這裏查看:http://jsfiddle.net/3kFv2/

  <table style='width:inherit;'> 
       <tr> 
        <td> 
         <input type='text' id ='queryInput' onkeypress = 'clearTimeout(timerVar); timerVar = setTimeout(function(){ fetchFieldInfo($("#queryInput").val()); },1000);' /> 
        </td> 
        <td style = 'text-align:right;'> 
         <a class = 'modalButton' id = 'queryButton' runat='server' value = 'Re-Filter' onCLick = '$("div.modal").fadeOut(); fetchFieldInfo($("#queryInput").val());'>Re-Filter</a> 
        </td> 
       </tr> 
       <tr> 
        <td colspan='2' style='margin-left:auto; margin-right:auto; text-align:center;'><select size = '20' id = 'selectList' name = 'selectList' ><option value = '1000'>Abutment Notes</option><option value = '2300'>Abutments Notes</option><option value = '2302'>Abutments Notes Maint Need</option><option value = '2301'>Abutments Notes Remarks</option><option value = '10942'>Concrete Deterioration Maint Need</option></select></td> 
       <td> 
        <div style='width:300px;height:300px;' id = 'modalInfoPanel'> 
        </div> 
       </td> 
      </tr> 
      <tr> 
       <td></td> 
       <td style='text-align:right;'> 
        <a class = 'modalButton' id = 'buttonReturnValue' value = 'Return Selected Element' onClick='$("div.modal, div.overlay").fadeOut();'>Return Selected Element</a> 
       </td> 
      </tr> 
     </table> 
     <script type = 'text/javascript'> 
      function ajaxDisplayContents(value){ 
       //alert(value.val()); 
/* 
       $('#selectList option').each(function(){ 
        return $(this).val() == ''; 
       }).attr('selected','selected'); 
*/ 
       $.ajax({ 
        type: 'POST', 
        url: WEBSERVICE_URL + '/fetchFieldInfo', 
        dataType: 'json', 
        contentType: 'application/json', 
        data: JSON.stringify({'fe_id': value.val().toString()}), 
        success: function(result, textStatus, jqXHR){ 
         $('#modalInfoPanel').html(result.fetchFieldInfoResult); 
        }, 
        error: function(xhr, status, message){ 
         $('#modalInfoPanel').html(status + ' ' + message); 
        } 
       }); 
      } 
      $('select#selectList').change(function(){ 
       ajaxDisplayContents($(this)); 
      }); 


      $(function(){ 
       $('ul li').click(function(){ clicker(this); }); 
      }); 
      function clicker(x){ 
       if($(x).next().is('li') || $(x).next().length == 0){ 
        $.ajax({ 
         type: 'POST', 
         url:, 
         dataType: 'json', 
         contentType: 'application/json', 
         data: JSON.stringify({}), 
         success: function(result){ 
          $(x).after($('<ul>').append($(result['METHODResult'])); 
          $(x).next().find('li').click(function() clicker(this); }); 
         }, 
         error: function(){ 
          alert('failed to fetch'); 
         } 
        }); 
       }else if($(x).next().is('ul')){ 
        $(x).next().slideUp(function(){ $(this).remove(); }); 
       } 
      } 
     </script> 
+0

如果你有一串HTML,你可以直接將它傳遞給'.html()'函數,你不必首先將它包裝在一個jQuery對象中。 – 2012-07-17 14:40:26

+0

是的,我知道。我把它放在兩邊,我原來的方式和你說的一樣。我只是在檢查是否有問題。 – Fallenreaper 2012-07-17 14:41:58

+0

我們可以看到更多的代碼嗎?看你如何做AJAX調用等將會很有用。還包括來自AJAX響應的完整'

4

我得到了同樣的錯誤80020101.

然後同時檢查一行行的代碼,我意識到我加入這兩次錯誤:<script<script>

一旦我刪除這些,錯誤就走開了。

因此,請仔細檢查您的所有代碼,特別是打開未正確關閉的代碼。

+0

您似乎已經忘記了一個或兩個單詞......「錯誤地添加了(兩次,這是不需要的)。 ..「你添加了什麼? – Alejo 2012-11-30 13:51:07

0

在我的情況下,問題是位於某些註釋行末尾的特殊字符(重音符號)。

當這些字符接近註釋行的末尾時,Internet Explorer將刪除其中的一些(包括換行符)並中斷JavaScript代碼。

// This comment line could fail because it has an accent at the end aeíou 
alert("This line probably doesn't work in IE"); 

IE就會明白這條線:

// This comment line could fail because it has an accent at the end **aealert**("This line probably doesn't work in IE"); 

我希望它幫你。