2013-08-08 5 views
1

Я разрабатываю приложение для дротика, которое будет использовать службу REST, которую я создаю. Я начал писать код дротика, чтобы выполнить запрос ajax для моей конечной точки входа. Однако, даже когда мой запрос ajax для дротика должен потерпеть неудачу, он утверждает, что добился успеха.Дарт-запрос сменился ... как-то?

У меня нет каких-либо услуг и работает (и даже если бы я сделал это было бы использовать неправильный домен/порт прямо сейчас), но этот код дает 200 OK HttpResponse каждый раз:

class PlayerController { 

    const PlayerController(); 

    static const String LOGIN_URL = "login"; 

    void login(String username, String password) { 
    Map<String, String> headers = {"Content-Type": "application/x-www-form-urlencoded"}; 
    String body = "j_username=$username&j_password=$password&submit=Login"; 
    HttpRequest.request(LOGIN_URL, method: "POST", requestHeaders: headers, sendData: body) 
     .then((request) => processLogin(request, username)) 
     .catchError((e) => processLoginError(e)); 
    } 

    void processLogin(var whatIsThis, String username) { 
    query("#loginButton").text = "Logout"; 
    //TODO get the player then set them 
    } 

    void processLoginError(var e) { 
    print("total failure to login because of $e"); 
    } 
} 

Он всегда попадает в метод processLogin и никогда не удаляет метод processLoginError. Кто-нибудь знает, почему это было бы? Должен ли я выполнять этот запрос ajax по-другому? (Если вы не могли догадаться, это будет подписание весенней безопасности).

Я где-то читал, что запросы файловой системы всегда успешны. Является ли Дарт каким-то образом созданием этого запроса файловой системы, а не веб-запроса?

+1

Можете ли вы использовать что-то вроде http :: localhost: 8080/login в качестве URL-адреса? В противном случае цитирование документов 'Requests to file: // URIs также никогда не будет терпеть неудачу - будущее всегда будет успешно завершено, даже если файл не может быть найден. ' – DrColossos

ответ

2

Это потому, что запрос действительно завершается успешно.

Ваш запрос на «Вход» будет на самом деле назвать http://127.0.0.1:6521/[Path_to_your_Dart_file]/login

Сервер начатый Dart при работе в Dartium (127.0.0.1:6521), кажется, ответ на запрос каждого POST с HTTP 200 и пустым телом ответа.

Если вы измените метод с POST на GET, он будет работать не так, как ожидалось.

Что касается того, почему сервер делает это - я действительно не знаю. На это должен был ответить команда Дарт.

+0

Странный. Я считаю, что ложные срабатывания никогда не будут полезны при попытке проверить, есть ли у вас что-то действительно действующее. Возможно, я попытаюсь найти их проблемы, чтобы увидеть, существует ли это. – CorayThan

+1

Я его не видел, поэтому я сделал [новый] (https://code.google.com/p/dart/issues/detail?id=12321) – CorayThan

Смежные вопросы