2014-02-12 2 views
2

다트로 웹 응용 프로그램을 만들고 싶습니다. 내가 로컬 글래스 피쉬 서버 다트 파일은 다음과 같습니다다트 내장 웹 서버 포트 변경

에서 실행되는 서블릿, 연결하려는 내 다트 파일에서

<!DOCTYPE html> 

<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Dart</title> 
    <link rel="stylesheet" href="dart.css"> 
    <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
    <script type="application/dart" src="dart.dart"></script> 
    <script src="packages/browser/dart.js"></script> 
    </head> 
    <body> 
    <h1>Dart</h1> 

    <p>Hello world from Dart!</p> 

    <div id="sample_container_id"> 
     <table id="table"> 
     <tr> 
      <td>Benutzername:</td> 
      <td><input type="text" id="inputuser" maxlength="40"></td> 
     </tr> 
     <tr> 
      <td>Passwort:</td> 
      <td><input type="password" id="inputpass" maxlength="40"></td> 
     </tr> 
     <tr> 
      <td><button id="button"></button></td> 
     </tr> 
     </table> 
    </div> 
    </body> 
</html> 

: 모든 첫 번째는 HTML이

import 'dart:html'; 

final TableElement table = querySelector('#table'); 
final DivElement main_div = querySelector('#sample_container_id'); 

void main() { 
    TextInputElement user = querySelector('#inputuser'); 
    PasswordInputElement password = querySelector('#inputpass'); 
    ButtonElement button = querySelector('#button'); 
    button.text = 'Send'; 
    button.onClick.listen((e) => checkUser(user, password)); 
} 

void checkUser(TextInputElement user, PasswordInputElement password) 
{ 
    var url = 'http://localhost:8080/dartTestServlet'; 
    HttpRequest request = new HttpRequest(); 
    request.open("POST", url); 
    request.onLoadEnd.listen((e) => onUserChecked(request.response.toString())); 

    String jsonData = '{"user":"' + user.value + '", "password":"' + password.value + '"}'; 

    request.send(jsonData); 
} 

다트 내가이 오류 메시지가있어 서버에 연결하는 경우 :

Failed to load resource: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:3030' is therefore not allowed access. http://localhost:8080/dartTestServlet 
,691을

나는 그 문제가 동일한 기원 정책이라는 것을 알고 있지만, 그것을 고치는 방법을 모른다.

저는 서버용 eclipse 인스턴스와 클라이언트 용 Dart Editor 인스턴스를 사용하고 있습니다. 어떻게 다트 편집기에서 임베디드 웹 서버의 포트를 8080으로 변경할 수 있습니까?

그렇지 않으면이 문제를 해결해야합니까?

고맙습니다.

+1

두 서버가 동일한 포트를 사용할 수 없으므로 문제가 해결되지 않습니다. GlassFish 서버를 통해 다트 페이지를 제공하거나 CORS를 사용해야합니다. – MarioP

+1

Thx. 글래스 피시를 통해 페이지를 제공했습니다. 이것은 CORS "문제"를 해결했습니다. – sylo

답변

0

DartEditor에 대해 모르겠으나 pub serve --port 8080을 사용하거나 패키지 디렉토리 내에서 pub serve (기본값은 8080)을 사용할 수 있습니다.

DartEditor에 통합 된 웹 서버는 곧 pub serve으로 바뀝니다.