基本上,我有一个应用程序来创建包含与之关联的项目的列表。我正在尝试使我的应用程序接受带有书签的跨域帖子,以从我访问的任何网站创建项目。我是 Rails 和 jQuery 的新手,因此将不胜感激任何帮助!
现在,我第一次按书签时收到 200 OK 回复。第二次,我收到 304 错误。但是,不会创建任何项目。
items_controller.rb
def create
@list = current_user.lists.find(params[:list_id])
@item = Item.create!(params[:item])
@item.wishes.build(list_id: @list.id)
if @item.save
flash[:success] = "Item created!"
redirect_to @item
else
render 'new'
end
end
书签.js
alert('Loaded');
document.write('<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>');
(function($)
{
alert( $('title').text() );
var dataObj = {
'remote_image_url': "http://developer.android.com/assets/images/dac_logo.png",
'title': $('title').text(),
'link': "http://omfg.dk",
'list_id': 5,
'commit': "Add wish"
};
$.ajaxSetup({
type: "POST",
// contentType: "application/json; charset=utf-8",
xhrFields: {
withCredentials: true
},
crossDomain: true
});
$.post('http://localhost:3000/items', dataObj, function(data)
{
//alert('ADDED!!!');
});
}(jQuery));
书签
javascript:(function()%7Bvar%20script=document.createElement('SCRIPT');script.src='http://localhost:3000/assets/bookmarklet.js';document.body.appendChild(script);%7D)()
此外,我rack/cors
安装并设置了 gem,如下所示:
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '*',
:headers => :any,
:methods => [:get, :put, :delete]
end
end