首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MethodNotAllowedHttpException在compiled.php第8518行

MethodNotAllowedHttpException在compiled.php第8518行
EN

Stack Overflow用户
提问于 2016-01-26 17:49:44
回答 1查看 3.2K关注 0票数 0

我从salesforce发送请求到laravel,然后laravel返回结果,并显示在可视力页面上

误差细节

顶点法

代码语言:javascript
复制
 public List<SelectOption> getItems()
    {
        HttpRequest req = new HttpRequest();
        HttpResponse res = new HttpResponse();
        Http http = new Http();

        req.setEndpoint('http://clozer.3spire.net/public/goclozer/country');
        req.setMethod('GET');

        req.setCompressed(false);
        req.setBody('key1=value1&key2=value2');
        req.setHeader('Content-Type', 'application/json');  

         try {
            res = http.send(req);                   
        } catch(System.CalloutException e) {
            system.debug('Callout error: '+ e);         
        }                

        getAllCountry = (Map<String, String>)JSON.deserialize(res.getBody(),Map<String, String>.class);

        List<SelectOption> option = new List<SelectOption>();

        option.add(new SelectOption('0','--None--'));        
        for(String c : getAllCountry.values())
        {
            option.add(new SelectOption(c,c));
        }

        return option;
    }

预期结果

代码语言:javascript
复制
{"0":"Aruba","1":"Antigua and Barbuda","2":"United Arab Emirates","3":"Afghanistan","4":"Algeria","5":"Azerbaijan","6":"Albania","7":"Armenia","8":"Andorra","9":"Angola","10":"American Samoa","11":"Argentina","12":"Australia","13":"Ashmore and Cartier Islands"}

Laravel 5号路线

代码语言:javascript
复制
Route::get('/goclozer/country','GoClozerController@getCountry');

Laravel 5法

代码语言:javascript
复制
public function getCountry()
    {
        $country = \App\Country::all();
        $names = array();

        foreach($country as $c)
        {
            $names[] = $c->name;
        }
        echo json_encode($names,JSON_FORCE_OBJECT);
    }

我怎样才能避免这个错误呢?谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-01-27 07:16:22

  • MethodNotAllowedHttpException意味着您使用了错误的HTTP谓词( Get、Post、Put、Delete .)。您已经为GET定义了路由,但是您可能正在发布数据
  • 修改(我假设您只想检索国家名称)可以通过 $countries =国家::all(‘name’); 这将只从表中检索国家名称,如果需要,可以添加更多字段。
  • 控制器获得一个请求,返回一个响应。你不会回复任何回应的。只是回应了结果。你可以做以下事情, 返回$countries; 这将简单地返回带有国家名称的JSON。
  • 您不必在路由声明的前面放置一个显式斜线。你甚至可以像下面这样写,这也会起作用。 路线:get(‘goclozer/country’,'GoClozerController@getCountry');

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35020455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档