量角器配置和脚本在我们的本地开发环境和持续集成环境(类似于 Codeship)中都按预期工作。
项目结构如下(我在下面描述 Codeship 环境状态):
AngularJS应用程序使用Ruby on rails应用程序从REST API构建请求数据,使用AJAX请求。
在我们的 Codeship 配置中,我们设置了 rails 应用程序、迁移和种子数据库,以便所有必要的数据都可用。
AngularJS 应用程序也配置正确,因为登录页面按预期呈现 (我正在打印屏幕,并且主页已正确加载)。
用户名和密码由量角器使用有效凭据(在 mysql DB 中可用)填写。
但是,当单击“登录”按钮时,AJAX 调用返回的响应是 405 Method Not Allowed。
由于我们在其他环境中从未遇到过这种响应,因此我们认为它与特定的编码设置有关。
有什么想法为什么 API 只会在 Codeship 上返回 405?
设置如下:
rvm use 2.2.0 --install
cp config/database.codeship.yml config/database.yml
bundle install
export RAILS_ENV="test"
bundle exec rake db:drop RAILS_ENV=test
bundle exec rake db:create RAILS_ENV=test
bundle exec rake db:test:prepare
bundle exec rake db:migrate RAILS_ENV=test
bundle exec rake seed:migrate RAILS_ENV=test
cd frontend && npm install && cd ..
npm install -g grunt-cli
npm install -g http-server
cd frontend && npm install bower && cd ..
cd frontend && bower install && cd ..
cd frontend && grunt build && cd ..
cd frontend && webdriver-manager update --standalone && cd ..
export RAILS_ENV="development"
rake db:structure:load
rake seed:migrate
http-server public -a 127.0.0.1 -p 9000 > /dev/null &
http-server app > /dev/null &
bundle exec rake
cd frontend && grunt test && cd ..
以下是显示 API 响应的屏幕截图部分: