jjzjj

html - iron-ajax 与 polymer-starter-kit 一起出现行为不端之类的。它向与我期望的不同的 url 发送请求

coder 2024-07-08 原文

在 Firefox 开发人员工具中,我得到以下日志输出:

 GET XHR http://localhost:8080/localhost:8080/journal_tag

即使我想Go:

http://localhost:8080/journal_tag

我尝试将 xhr 响应应该来自变量“this.the_server_url”的服务器位置进行数据绑定(bind)。但我很难过,因为当我做任何一个

console.log(document.location.protocol+document.location.host+"/journal_tag")
console.log(this.the_server_url)

我明白了

"http:localhost:8080/journal_tag"

这是服务器端代码应该响应 xhr 请求的地方。因此,Firefox 开发人员工具日志告诉我,iron-ajax 或 iron-ajax 与 polymer-starter-kit 中的 page.js 结合使用时行为异常,即使它在 the_server_url 变量中具有正确的 xhr 目标。如果有人对此有任何想法,我将不胜感激。

这是我的js代码:

<dom-module id="journal-tag">
  <template>
    <paper-input value={{the_new_tag}}>
        Enter the new tag
    </paper-input>
    <paper-button raised on-tap="tap_new_tag">
        Submit tag
    </paper-button>
    <iron-ajax
        auto
        url={{the_server_url}}
        params={{ajax_new_tag}}
        handle-as="json"
        on-response="new_tag_response"
        last-response={{the_xhr_response}}
        debounce-duration="300">
    </iron-ajax>
  </template>
  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'journal-tag',
        properties:{
            the_new_tag:{
                type:String,
                notify:true
            },
            the_server_url:{
                type:String,
                notify:true
            },
            ajax_new_tag:{
                type:String,
                notify:true
            },
            the_xhr_response:{
                type:String,
                notify:true
            }
        },
        ready : function(){
            this.the_server_url=document.location.protocol+document.location.host+"/journal_tag";
        },
        tap_new_tag : function(){
//parameter format for{{ajax_new_tag}}:
//'{"alt":"json", "q":"chrome"}'
//            this.the_new_tag="tadu";
            this.ajax_new_tag={"tag" : this.the_new_tag};
        },
        new_tag_response : function(){
            console.log("tada")
            console.log(this.the_xhr_response)
            alert(this.the_xhr_response)
        }
    });
  })();
  </script>
</dom-module>

这是我的服务器端 go 代码,但它似乎从未被调用过:

...
http.HandleFunc("/journal_tag",journal_tag)
...
func journal_tag(w http.ResponseWriter, r *http.Request){
    c := appengine.NewContext(r)
    u := user.Current(c)
    if u == nil {
        io.WriteString(w, "strange_matter")
        return
    }
//    var tag=r.FormValue("tag")
//    io.WriteString(w, "{\"tag\":\"" + tag + "\"}")
    io.WriteString(w, "{\"tag\":\"tada\"}")
}  

最佳答案

一些事情。您缺少 http:localhost:8080/journal_tag 中的斜线 它应该是 http://localhost:8080/journal_tag。此外,您可以使用您所在浏览器的开发者工具来查看您发送的所有 XHR 请求。在那里查看发送的请求 header 是什么。

关于html - iron-ajax 与 polymer-starter-kit 一起出现行为不端之类的。它向与我期望的不同的 url 发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37101221/

有关html - iron-ajax 与 polymer-starter-kit 一起出现行为不端之类的。它向与我期望的不同的 url 发送请求的更多相关文章

  1. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  2. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  3. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  4. ruby - 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么? - 2

    我的工作要求我为某些测试自动生成电子邮件。我一直在四处寻找,但未能找到可以快速实现的合理解决方案。它需要在outlook而不是其他邮件服务器中,因为我们有一些奇怪的身份验证规则,我们需要保存草稿而不是仅仅发送邮件的选项。显然win32ole可以做到这一点,但我找不到任何相当简单的例子。 最佳答案 假设存储了Outlook凭据并且您设置为自动登录到Outlook,WIN32OLE可以很好地完成此操作:require'win32ole'outlook=WIN32OLE.new('Outlook.Application')message=

  5. ruby - Ruby gsub 替换中的行为不一致? - 2

    两个gsub产生不同的结果。谁能解释一下为什么?代码也可在https://gist.github.com/franklsf95/6c0f8938f28706b5644d获得.ver=9999str="\tCFBundleDevelopmentRegion\n\ten\n\tCFBundleVersion\n\t0.1.190\n\tAppID\n\t000000000000000"putsstr.gsub/(CFBundleVersion\n\t.*\.).*()/,"#{$1}#{ver}#{$2}"puts'--------'putsstr.gsub/(CFBundleVersio

  6. ruby-on-rails - 在 RSpec 中,如何以任意顺序期望具有不同参数的多条消息? - 2

    RSpec似乎按顺序匹配方法接收的消息。我不确定如何使以下代码工作:allow(a).toreceive(:f)expect(a).toreceive(:f).with(2)a.f(1)a.f(2)a.f(3)我问的原因是a.f的一些调用是由我的代码的上层控制的,所以我不能对这些方法调用添加期望。 最佳答案 RSpecspy是测试这种情况的一种方式。要监视一个方法,用allowstub,除了方法名称之外没有任何约束,调用该方法,然后expect确切的方法调用。例如:allow(a).toreceive(:f)a.f(2)a.f(1)

  7. ruby-on-rails - Ruby 中意外的大小写行为 - 2

    我在一段非常简单的代码(如我所想)中得到了一个错误的值:org=4caseorgwhenorg=4val='H'endputsval=>nil请不要生气,我希望我错过了一些非常明显的东西,但我真的想不通。谢谢。 最佳答案 这是典型的Ruby错误。case有两种被调用的方法,一种是你传递一个东西作为分支的基础,另一种是你不传递的东西。如果您确实在case中指定了一个表达式语句然后评估所有其他条件并与===进行比较.在这种情况下org评估为false和org===false显然不是真的。所有其他情况也是如此,它们要么是真的,要么是假的。

  8. ruby - 使对象的行为类似于 ruby​​ 中并行分配的数组 - 2

    假设您在Ruby中执行此操作:ar=[1,2]x,y=ar然后,x==1和y==2。是否有一种方法可以在我自己的类中定义,从而产生相同的效果?例如rb=AllYourCode.newx,y=rb到目前为止,对于这样的赋值,我所能做的就是使x==rb和y=nil。Python有这样一个特性:>>>classFoo:...def__iter__(self):...returniter([1,2])...>>>x,y=Foo()>>>x1>>>y2 最佳答案 是的。定义#to_ary。这将使您的对象被视为要分配的数组。irb>o=Obje

  9. ruby - 是否可以在不实际发送或读取数据的情况下查明 ruby​​ 套接字是否处于 ESTABLISHED 或 CLOSE_WAIT 状态? - 2

    s=Socket.new(Socket::AF_INET,Socket::SOCK_STREAM,0)s.connect(Socket.pack_sockaddr_in('port','hostname'))ssl=OpenSSL::SSL::SSLSocket.new(s,sslcert)ssl.connect从这里开始,如果ssl连接和底层套接字仍然是ESTABLISHED,或者它是否在默认值7200之后进入CLOSE_WAIT,我想检查一个线程几秒钟甚至更糟的是在实际上不需要.write()或.read()的情况下关闭。是用select()、IO.select()还是其他方法完成

  10. ruby - HTTP 请求中的用户代理,Ruby - 2

    我是Ruby的新手。我试过查看在线文档,但没有找到任何有效的方法。我想在以下HTTP请求botget_response()和get()中包含一个用户代理。有人可以指出我正确的方向吗?#PreliminarycheckthatProggitisupcheck=Net::HTTP.get_response(URI.parse(proggit_url))ifcheck.code!="200"puts"ErrorcontactingProggit"returnend#Attempttogetthejsonresponse=Net::HTTP.get(URI.parse(proggit_url)

随机推荐