2016-02-10 127 views
1

我想将字符串传递给使用Ajax的服务。但我得到的错误unexpected token illegal将参数传递给ajax请求的正确方法

function main() { 
    age = <%= myclass._age %>; 
    passedname = encodeURIComponent(<%= myclass._namestrings %>); 
    $.ajax({ 
     url: 'https://myservice/index.json', 
     dataType: 'json', 
     data: "searchstring=" + passedname + "&take=" + age + "", 
     success: function (data) { 
      var first = true; 
      $("#dataDiv").html(""); 
      $.each(data, function (index, record) { 
       var html = ""; 

       $.each(record, function (index1, data) { 
        html += data.name; 

       }); 
       $("#myDiv").append(html); 

      }); 
     }, 
     statusCode: { 
      404: function() { 
       debugger; 
       alert('Failed'); 
      } 
     } 
    }); 
} 

我通过可变passedname约翰但它给错误。 如果我通过变量传递名称为“约翰”,即传递双引号,那么它的工作原理。我不希望用户使用双引号将其传递。

+0

在此页由服务器呈现?我认为这个错误是因为'<%= myclass._age%>'和'<%= myclass._namestrings%>'Java scriptlets没有被渲染,或者它们缺少引号'''如果你查看HTML你可以在代码中看到什么?试着编写'“<%= myclass._age%>”和'“<%= myclass._namestrings%>”(年龄可能不需要引号,因为我假设它是一个数字) – valepu

+0

@valepu感谢它与“<%= myclass._namestrings%>” – Happy

回答

1

你需要把那个被替换的服务器端的字符串值之间的报价,在这种情况下,你应该<%= myclass._namestrings %>之间添加引号:

passedname = encodeURIComponent("<%= myclass._namestrings %>"); 
相关问题