슬림 한 REST 서비스를 호출하는 백본 스크립트가 있습니다. GET 요청이 정상적으로 작동하고 PUT 요청이 404를 찾을 수 없습니다. 참고 :이 코드는 최근에 다른 서버로 옮겨져 (그리고 로컬에서 작동 할 때까지) 작동하기 때문에 Apache 설정과 관련이 있다고 생각합니다. 여기 백본에서 슬림 REST 서비스로의 PUT 요청으로 인해 404가 발견되지 않음
jQuery(document).ready(function ($) {
//define box model
var Box = Backbone.Model.extend({
url: function() {
var urlId = (this.id) ? this.id : "";
var myUrl = "/wp-includes/api/service.php/box/" + urlId;
return myUrl;
}
});
var BoxView = Backbone.View.extend({
tagName: "div",
template: $("#boxTemplate").html(),
initialize: function() {
this.model = new Box(box);
this.render();
},
saveBox: function(e){
e.preventDefault();
$("#boxMessage").empty();
var formData = {},
prev = this.model.previousAttributes();
$(e.target).closest("form").find(":input").not("button").each(function(){
var el = $(this);
formData[el.attr("id")] = el.val();
});
this.model.set(formData);
this.model.save(
{ },
{
success: function() {
$("#boxMessage").html("Box information saved.");
},
error: function() {
}
}
);
}
는 슬림 REST 서비스의 조각입니다 : 여기
<?php
require 'Slim/Slim.php';
$app = new Slim();
$app->get('/workouts/:id', 'getWorkout');
$app->put('/box/:id', 'updateEventBox');
$app->run();
function getWorkout($id) {
echo json_encode(GetEventCompetitorWorkout($id));
}
function updateEventBox($id) {
$request = Slim::getInstance()->request();
$body = $request->getBody();
$eventBox = new EventBox(null);
$eventBox->TakeJson($body);
$eventBox->Save();
}
그리고 요청에 대한 헤더 정보 것 :
Request URL:http://www.mydomain.com/wp-includes/api/service.php/box/1
Request Method:PUT
Status Code:404 Not Found
UPDATE 여기 백본 스크립트의 코드 조각입니다 : 그냥 같은 서비스에 POST를 테스트하고 괜찮 았는데. PUT은 여전히 실패합니다.