简体   繁体   English

Ajax Slim框架

[英]Ajax Slim Framework

I am working on a ajax to call the slimframework API and post data to the DB. 我正在研究一个ajax来调用slimframework API并将数据发布到数据库。 But ajax PUT do not work? 但是ajax PUT不起作用? I keep getting a 404 in ajax . 我一直在ajax中收到404。

This works 这有效

<form action="http://myapi.com/api/key/514315/push" method="post">
<input type="input" name="test" value="test">

<input type="submit" value="Submit"/>

Trying in Ajax, this oes not work : returns 404 when sending data, as if you accessed API without sending a put request. 在Ajax中进行尝试,这一操作不起作用 :发送数据时返回404,就像您访问API而未发送放置请求一样。

<script type="text/javascript">
var Data = [
    {
        "Name" : 'Home',
        "Description" : "This is a test description",
        "Keywords" : "Keyword One, Two, Threeh",
        "Menu" : 1,
        "Parent" : 0
    },
    {
        "Name" : 'About',
        "Description" : "This is a About description",
        "Keywords" : "Keyword One, Two, Threeh",
        "Menu" : 2,
        "Parent" : 0
    }

];

var rootURL = "http://myapi.com/api/key/514315/push";

$.each(Data, function(key, value) {

    $.ajax({
        type: 'POST',
        contentType: 'application/json',
        url: rootURL,
        dataType: "json",
        data: Data[key],
        success: function(data, textStatus, jqXHR){
            alert('Article Added');
        },
        error: function(jqXHR, textStatus, errorThrown){
            alert('Add Article error: ' + textStatus);
        }
    });

});

PHP 的PHP

$app->post('/key/:key/push', function ($key) {


        $app = new \Slim\Slim();

        $body = $app->request->getBody();

        $singleRequest =  $app->request->params('test');

        echo "<pre>";
        print_r($body);
        echo "</pre>";

        echo "<hr>";


        echo "<pre>";
        print_r($singleRequest);
        echo "</pre>";


});

$app->run();

Any Ideas? 有任何想法吗?

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Max-Age: 1000');
if(array_key_exists('HTTP_ACCESS_CONTROL_REQUEST_HEADERS', $_SERVER)) {
    header('Access-Control-Allow-Headers: '
           . $_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']);
} else {
    header('Access-Control-Allow-Headers: *');
}

if("OPTIONS" == $_SERVER['REQUEST_METHOD']) {
    exit(0);
}

Added this into PHP 将此添加到PHP

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM