Heim  >  Fragen und Antworten  >  Hauptteil

Die Laravel-API gibt Daten zur Lösung domänenübergreifender Probleme mit JSONP und Post-Anfragen zurück

In der Backend-Dingo/API-Schnittstelle

Routenführung

$api = app('api.router');
$api->version('v1', function ($api) {
    $api->get('products','Api\V1\ProductController@index');   
});

Controller ProductController

public function index()
    {
        return Product::all();
    }

Besuchen Sie http://001.com/api/products

Die Daten lauten wie folgt

{"products":[{"id":1,"name":"\u5c0f\u9ec4\u74dc","price":"11.21","sort":0,"status":0,"created_at":"2015-08-03 16:15:07","updated_at":"2015-08-03 16:58:01","b_price":"11.21","no":"001","number":100},{"id":3,"name":"\u897f\u7ea2\u67ff","price":"3.22","sort":0,"status":0,"created_at":"2015-08-03 16:59:34","updated_at":"2015-08-03 16:59:34","b_price":"3.22","no":"003","number":100},{"id":39,"name":"\u4e1d\u74dc","price":"10.00","sort":0,"status":0,"created_at":"2015-08-03 18:30:05","updated_at":"2015-08-03 18:30:05","b_price":"10.00","no":"100","number":1000}]}

Die Rezeption der externen Site fordert Zugriff auf die API-Schnittstelle an

$.ajax({
        type: 'get',
        url: 'http://001.com/api/products',
        dataType : 'jsonp',
        jsonp:"jsoncallback",
        success: function(data){
              console.log(data);
        },
        error: function(){

            alert('500 error!')
        }
    });

Das Ergebnis war ein Fehler und wurde ausgeführt alert('500 error!')

Sind die zurückgegebenen Daten korrekt?

Die Daten wurden abgefragt. Wie werden die korrekten Daten zurückgegeben?

Denn als die Rezeption die Anfrage stellte, meldete der Browser folgenden Fehler:

Uncaught SyntaxError: Unexpected token :

Hat jemand eine Anleitung?

Der Browser gibt Folgendes zurück, bis das JSONP-Format vorliegt, oder?

Wenn es nicht dem JSONP-Format entspricht

Dann

dingo/api

https://github.com/dingo/api/wiki/Creating-API-Endpoints

So erreichen Sie eine Cross-Site-Request-API

CSRF-Token ist geschlossen

我想大声告诉你我想大声告诉你2713 Tage vor848

Antworte allen(2)Ich werde antworten

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 16:57:53

    把csrf token关了
    http://www.cnblogs.com/HD/p/4555369.html

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-16 16:57:53

    php//没用过dingo/api,不过应该差不多
    $.ajax({
            type: 'get',
            url: 'http://001.com/api/products?callback=?',
            dataType : 'jsonp',
            jsonp:"jsoncallback",
            success: function(data){
                  console.log(data);
            },
            error: function(){
    
                alert('500 error!')
            }
        });
    public function index()
        {
            $callback = Request::input('callback');
            $result = Product::all();
            return $callback($result);//结构为'callback({"products":[]})'
        }
    

    Antwort
    0
  • StornierenAntwort