我正在使用 opal-jquery 向我的后端发送 ajax 请求,但是当我尝试在后端访问它时,json 有效负载格式错误。
当我puts @params.to_s
在后端执行时,它显示为:
{"{\"username\":\"some_user\", \"password\":\"some_password\"}"=>nil}
因此,要获取登录详细信息,我必须这样做:
@params.each do |k,v|
login_details = JSON.parse(k)
end
我的前端(蛋白石)提交请求如下所示:
def handle_login_submit details
url = "/client/api/auth"
HTTP.post url, payload: details.to_json, dataType: 'json' do |response|
case response.status_code / 100
when 2
puts response.status_code
self.login_state = :return_success
puts response.json
when 4
self.login_state = :return_failed
puts response.status_code
puts response.json
when 5
self.f_message = {type: :error, message: "There was a server error" }
self.login_state = :return_failed
end
end
end
我绝对知道细节的格式正确,所以这不是问题。
我想最后归结为是否
opal-jquery 错误地发送 post 请求
sinatra 不正确地解析请求。
我不确定它是哪一个,但我倾向于相信它是前者,因为在我改用 react.rb 作为前端之前它运行良好。