【发布时间】:2016-04-29 15:34:28
【问题描述】:
我是 Rails 和 AJAX 的新手。 我想使用托管在不同网站上的 API。我遇到了跨源 HTTP 请求的问题。所以我尝试使用 HTTParty 来做到这一点。
在下面的代码中,我将 $(".result") 的文本设置为 JSON.parse(HTTParty()) 请求,以便它可以查询网站并给我结果。
Rails 代码:
<%= form_for(@profile) do |f| %>
<%= f.label :content %>
<%= f.text_field :content, class: 'ajax-control' %>
<%= f.submit "Save changes", class: "btn btn-primary" %>
<% end %>
<p class="result"></p>
Javascript 代码:
<script>
$(document).ready(function(){
$('.ajax-control').on('keyup',function(){
var charCount = $(this).val().length;
if(charCount===3){
var str1='<%=JSON.parse(HTTParty.get("http://example.com/api.php?param='+$(this).val()+'"))%>'
$(".result").text(str1);
}
});
});
</script>
现在出现了奇怪的问题。上面的代码确实将 GET 请求发送到 example.com(占位符),但得到的响应表明它不是一个有效的查询。
但是,如果我按如下方式传递 str1 -
var str1='<%=JSON.parse(HTTParty.get("http://example.com/api.php?param=xyz"))%>'
$(".result").text(str1);
我得到了预期的响应。如果 $(".ajax-control") 文本字段是“xyz”,我会收到一条回复说不是一个有效的查询。
javascript 中的字符串连接是否会引入新字符,从而引发错误?
【问题讨论】:
标签: javascript ruby-on-rails json ajax httparty