3

相対URLに投稿するにはjQueryが必要です(現在はルートに投稿しています)。

構造:

  1. サイトのURL:localhost/myApp
  2. フォームのURL:Account/Login
  3. 実際のサーバーのURL:localhost/myApp/Account/Login<-ここで必要
  4. URLへの投稿:localhost/Account/Login

形:

<form id="login" action="Account/Login" method="POST">
</form>

jQuery:

$.post($el.find('form').attr("action"), $el.find('form').serialize(), function(resp) {
});

このアプリを任意のURLに配置できる必要があり、機能するため、でホストされている場合はwww.site.com/dir1/dir2/、に投稿する必要がありwww.site.com/dir1/dir2/Account/Loginます。

これはシングルページアプリであることに注意してください。したがって、フォームはにありlocalhost/myAppます。

ヘッダー情報:

Request URL:http://localhost/Account/Login
Request Method:POST
Status Code:404 Not Found
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Connection:keep-alive
Content-Length:19
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Host:localhost
Origin:http://localhost
Referer:http://localhost/myApp
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5
X-Requested-With:XMLHttpRequest
4

2 に答える 2

1

URLアクションの前にスラッシュを追加して、次のようにします。

/Account/Login
于 2012-05-26T20:57:09.450 に答える
1
Request URL:http://localhost/Account/Login
Request Method:POST
Status Code:404 Not Found
Request Headersview source 
...
...
Referer:http://localhost/myApp

/ myAppをロードしていますが、ルート/パスでクライアントをドロップする何らかの形式のリダイレクトが行われていることは明らかです。

したがって、アクションで、アクション属性に以下を追加します。

<form action="/myApp/Account/Login">

余談ですが、URLを書き換える301/302リダイレクトがあるか、http://localhost実際にはアクセスしていないか、相対URLが破棄される原因となるHTML要素http://localhost/myAppがある可能性があります。<base>すべてのHTMLが表示されていないと、確実に言うのは難しいですが、アクションのパスを変更すると、フォームがサーバーに接続されます。

アプリケーションのルートがプラットフォームごとに変わる場合は、<base>すべてのURLを変更する必要がないように、HTML要素の使用を検討してください。を使用<base>すると、HTMLの1か所で変更を加えるだけです。

<!-- relative urls start from /myApp -->
<base target="_blank" href="http://localhost/myApp/">

詳細については、ベースHTML要素に関するMozillaDeveloperCenterの記事を参照してください。

href

  • ドキュメント全体で相対URLアドレスに使用されるベースURL。
  • この属性を指定する場合、この要素は、値がURLである属性を持つ他の要素の前に配置する必要があります。
  • 絶対URIと相対URIが許可されます(ただし、以下の注セクションを参照してください)。

また、W3Schoolsからの情報は精査する必要がありますが、MDCよりも優れた例があるという理由だけで、ここにベースHTML要素のページをリストします。

<head>
    <base href="http://www.w3schools.com/images/" target="_blank" />
</head>

<body>
    <img src="stickman.gif" />
    <a href="http://www.w3schools.com">W3Schools</a>
</body>

これが必須のW3Foolsリンクです。

注:基本要素は、基本要素によって変更されたURLを参照する他の要素の前に配置する必要があります。

于 2012-05-26T21:03:54.437 に答える